Now that IntelliJ has gone open source I thought it would be helpful to see how it compared to the other popular JAVA IDEs NetBeans and Eclipse. I'm personally have been using NetBeans & Glassfish for many years now but I'll try not to let it cloud my judgement.

IntelliJ IDE
Code Formatting:
Intelli J IDE, Eclipse IDE and Java NetBeans IDE perform similar in Code formatting. Both of these technologies format whole source, format selected part only and user`s specific formatting of code.
Finding and Replacing:
All the three IDE`s support finding and replacing with options such as case matching, regular expressions, etc.
Eclipse contains a common dialog box for both finding and replacing. The dialog box overlaps the editor’s window.
Intelli J has special dialog window for replacing and a fast pop-up top bar for finding. Intelli J has cleverly designed it.
NetBeans has a similar approach but the pop up window is at the bottom of editor’s window.

NetBeans IDE
Code Completion:
Code completion is similar in all of the three IDE`s and they have the same design. Intelli J has a special feature which is called “Camel Hump” which searches an appropriate text amongst the list of words.
Use Hints:
Eclipse: - A bulb icon appears on the left side bar with line numbers on appropriate line. When the cursor is hovered on the bulb a text with hint explanation pop`s up and a whole list of solutions are displayed.
IntelliJ: - IntelliJ user needs to practically click on the hint text available for List of solutions which are made public.
NetBeans: - In NetBeans user needs to scroll on the hint text for possible solutions.
Macros:
NetBeans: - Netbeans supports Macros editing and support. User can remove, rename, edit and set shortcut. Good thing is user can edit shortcut for a macro on every two places, bad thing is user cannot run a macro without setting a shortcut.
IntelliJ: - In IntelliJ user can record, edit and rename the macro. User cannot set the Macro shortcut. Once the user sets the macro`s name it is automatically added.
Eclipse: - Eclipse IDE does not support the Macros feature.
Syntax highlighting:
All the three IDE`s support syntax highlighting. They allow the user to change the pre defined colors.

Eclipse IDE
Code Navigation
Navigator:
Some of the various features which are present are:
1) Structured view
2) Filters
3) Quick search
4) Pop up navigator
NetBeans IDE, IntelliJ and Eclipse support structured view, filters and quick search. Pop up navigator feature is not supported by NetBeans IDE and IntelliJ whereas Eclipse supports this feature.
Tasks Management:
There are certain sub sections for tasks management which are:
1) List of tasks in active source file
2) List of tasks in project
3) Filtering
4) New task definition
Eclipse: - It has classical view of tasks. It allows the user to sort out tasks by available fields such as description, resource, path, location and priority. It supports List of tasks in the project, Filtering and new task definition.
NetBeans IDE: - NetBeans IDE has similar approach like Eclipse but it does not support task priority. NetBeans IDE shows the errors in different window.
IntelliJ IDE: - It has a tree view of tasks. Leaves of the tree are tasks whereas the nodes are files. Moving from one task to another task is difficult and a complex process. There is a default TODO command in the settings.
Refactoring:
There are certain sub sections for refracting such as
1) Find usages
2) Rename
3) Move
4) Safe delete
Eclipse IDE: - Eclipse IDE supports find usages, rename and move features. When the user wants to change or rename a method, identifier will be highlighted and user can change the name of the method.
IntelliJ: - IntelliJ supports Find usages, Rename, Safe delete and Move. A single view is presented before the user they are new name, refractor, preview and cancel button.
NetBeans IDE: - NetBeans supports all the four functions which are find usages, rename, move and safe delete. Netbeans preview is similar to the Eclipse design. The preview window is displayed at the bottom of the screen which makes it difficult for the coder to view.
Automatic Code Generation:
Automatic code generation has two sub sections which are
1) Constructor
2) Setters/Getters
NetBeans IDE: - NetBeans IDE supports the functions constructors and
setters.
IntelliJ IDE: - Supports the functions Constructors and setters.
Eclipse: - Eclipse has similar design and supports constructors and setters. It has some other capabilities such as insertion point where code can be generated.
|
Frameworks and Technologies Supported |
IntelliJ (Community Edition free) |
NetBeans |
Eclipse |
|
OSGi |
|
|
|
|
Grails |
|
|
|
|
Rails |
|
|
|
|
JSP |
|
|
|
|
Servlets 3.0 |
|
|
|
|
JavaServer Faces 1.0, 1.2 |
|
|
|
|
EJB 3.0, 3.1 |
|
|
|
|
Web Beans |
|
|
?
|
|
Bean validation |
|
|
|
|
Flex, Air |
|
|
?
|
|
GWT 1.X, 2.0 |
|
|
|
|
Struts 1.2, 2 |
|
|
|
|
Spring 2.5, 3.0 |
|
|
|
|
JBoss Seam |
|
|
|
|
Hibernate |
|
|
|
|
JPA 1.0, 2.0 |
|
|
|
|
JAX-WS, Apache AXIS |
|
|
|
|
REST WebServices |
|
|
|
|
Tapestry |
|
|
|
|
Google App Engine |
|
|
|
|
Application Servers
|
|
Apache Tomcat |
|
|
|
|
GlassFish v2, v3 |
|
|
|
|
JBoss |
|
|
|
|
WebLogic |
|
|
|
|
WebSphere |
|
|
|
|
Geronimo |
|
|
|
|
Resin |
|
|
|