Rahul Sah
For successful development of applications based on object-oriented languages like C++ or Java, a developer needs an IDE that would compliment him in his work. For making the task of developing a complicated application easier, IDEs have been through radical developmental changes and have come a long way from being just a text editor. Now with due respect to the complexity of applications new IDEs come with a lot of new features. Recently NetBeans, Eclipse and IntelliJ IDEA have released milestone versions of their latest Java IDEs. Here, in this article we'll compare the new features in these IDEs.
Direct Hit! |
Applies To: Java developers
USP: Comparing strengths of IDEs for app development
Keywords: NetBeans 6, Eclipse 3.3,
IntelliJ 7
On PCQ Extreme DVD: PCQ
Xtreme\system\cdrom\ides
NetBeans 6.0
Usability and Code assistance
Application Development Support Though NetBeans provides support for all Web based applications from JSP/Struts to JEE and EJBs, its prized support is for Swing, thanks to new Matisse GUI designer. Unlike other IDEs, you are not required to download any additional plug-ins for the GUI builder as this IDE comes bundled with a GUI designer. This GUI builder additionally provides Bean binding feature for database applications. You can add internationalized strings to each form, dialog or panel for the Swing components by using the 'Internationalization' feature. Rich Client Platform wizard benefits Swing developers while developing sophisticated applications.
The NetBeans provide support for development of Web application on Struts 1.2.9 framework. Wizard for a Struts project is an easy one; it automatically creates the web.xml and struts-config.xml, but does not provide any Visual Editor to view page navigation and forwarding. Moreover, the bundled Tomcat simplifies the testing and development process of JSP/Servlet applications.
While comparing the NetBeans 5.5 and 6.0 versions we found that with NetBeans 6.0, the basic Editor support for JavaScript, JSP and CSS have improved and have code completion and debugging feature. However, unlike Eclipse that provides a design view for both JSP and HTML pages, NetBeans still lags behind.
It provides a good support for SOA model and in the latest version for Web services a Graphical Editor has been incorporated, which provides interoperability oaf .NET services through Web services Interoperability Technology (WSIT). Moreover, its Project Configuration wizard is elaborative and automatically generates the code for business, home as well as remote interface, along with the stub implementations. With automatic configuration of ejb-jar.xml done by this wizard, a developer is just left with the job of completing the mappings.
Features
Profiler is one stand-apart feature of NetBeans 6.0. The profiling functions include CPU, Memory and Thread profiling as well as basic JVM monitoring and hence, enhancing a developer's productivity while solving memory or performance-related issues. Few example applications for the range of categories varying from simple Java Swing application to Web application on Struts or from SOA to Ruby Applications are an added bonus, which provide developers with a template to start upon a new application.
Minuses
NetBeans lacksa community support that Eclipse has and this results in poor support for JBoss, GWT and SWT.Another disadvantage is lack of built-in Hibernate support, but plug-ins are available to achieve that.
Eclipse 3.3 (Europa)
Eclipse, a project initially started by IBM has now a strong open source community backing it. The open source community provides full support in development and maintenance of the IDE and its plug-ins. The new Eclipse slated for release is termed as Europa. Eclipse IDE in its base installation state is no more than an Editor for creating “Welcome to JavaWorld!!” kind of programs. However, one can make this IDE workable for Web applications or GUI based applications, but for that additional plug-ins must be downloaded from the websites of either Eclipse or any other third-party vendor. This is unlike NetBeans that comes as a one-time installation package and provides support for various Java based development frameworks. To make Eclipse workable for JSP support the Web Tools Project(WTP) plug-in has to be installed. Similarly, for GUI development Graphical Editing Framework (GEF) and Eclipse Modeling Framework (EMF) are supposed to be downloaded and integrated with Eclipse.
Usability and Code assistance
As for making the Eclipse IDE environment compatible for any development area, additional plug-ins is required. The same can be downloaded from within the Eclipse through Help > Software Updates menu option. The IDE interface is different from NetBeans or IntelliJ, it uses a perspective-based paradigm for layout. This layout sets the Panels, Palettes and Editors in relation to the selected perspective, for e.g. the Java perspective combines views that you would commonly use while editing Java source files. This helps a developer to have all project related, commonly used items in his interface's layout view. So, rather than traversing between views while shifting between different development projects, a developer can just select desired perspective from the Windows menu. For code assistance this IDE provides code completion and Java documentation of the Java semantic member elements. However, the code completion of Eclipse is a bit slow when compared to that of IntelliJ's or NetBeans'.
App Development Support
Though Eclipse provides support for Java development only; support for GUI, Web or Ruby application development can be incorporated through plug-ins. The Visual Editor in Eclipse for GUI development is not at par with Matisse GUI builder of NetBeans, but it has support for Standard Widget Toolkit (SWT) based application, which NetBeans lacks. When WTP has been downloaded for Eclipse, it provides good support for JSP/struts based Web applications as it has a full JSP/HTML Editor and a wizard for creating Struts Actions and FormBeans. For Java Enterprise development, Eclipse has J2EE and EJB development modes, and under which it provides EAR and EJB modules development. However, the code generated automatically by Eclipse is not of the level that is generated by NetBeans. Since, Eclipse is community driven its shortcomings could be dealt with by installing various plug-ins. MyEclipse is a plug-in that incorporates several features such as inbuilt server runtime integration and support options for Hibernate into Eclipse and makes it ideal for developers who work on JEE based applications.
Features
As a base Eclipse distribution the only feature worth mentioning would be the help and step-by-step tutorials.
Minuses
Several plug-in downloads, as without them Eclipse is just as good as a normal Java Editor.
IntelliJ IDEA 7
IntelliJ IDEA 7 has been released by JetBrains and termed as project Selena. With their Milestone 1 release, JetBrains have introduced Groovy and Grails support apart from various improved or enhanced supports for Hibernation, Spring etc.Unlike NetBeans or Eclipse, JetBrains is a commercial product and you can have a commercial license of IntelliJ for USD 499.
Usability and Code assistance
The code completion feature of IDEA editor can be considered as benchmark for IDEs. It is not just fast, but context aware also. The Editor offers color highlighting, hints and suggestions based on the context code.
The interface layout of this IDE on the other hand is not intuitive like that of NetBeans, however, it provides the facility to re-arrange Panels and Editor on the layout window. Its enhanced Refactoring feature allows you to rename a parameter and remove parameters, which are no longer in use.
Application Development Support
The GUI Editor of IDEA scores just next to NetBeans Mattise GUI builder. For Swing application development it has support for JGoodies Forms for designing interfaces and for Hibernate and Struts development for Web applications, the interface provided 'Configuration' wizard. This wizard generates the necessary package setup with all necessary libraries and classpaths. Since, Struts and Hibernate libraries do not come embedded with the main installation package; they have to be downloaded separately, and their paths have to be provided while configuring the wizard. For J2EE Specification applications, IDEA provides full support and has deployment plug-ins available for application servers such as JBoss, WebSphere, and WebLogic.
Features
IntelliJ IDEA incorporates inbuilt Version Control System that is useful for a team based project development. Another feature is of Maven integration, using which projects can directly be created from Maven descriptor files.
Minuses
A Visual Editor for designing JSP/HTML pages would have been an added advantage and also it is not a free product.
Till now, NetBeans used to be underwritten in the Java IDE arena, but now the situation has changed. From being an underdog it has become a popular Java IDE. With its full support for Swing based application development, it is an ideal choice for buliding GUI based applications, where both Eclipse and IntelliJ IDEA lacks to compete with Matisse GUI builder of NetBeans. But, while considering a full-fledged J2EE application, then IntelliJ IDEA is tough to beat as it is having splendid support for JSP, Struts and Hibernate. This support is somewhat matched by NetBeans, but Eclipse in its base installation is nowhere in contention.
Therefore, IntelliJ IDEA is an ideal IDE for a Java developer, but that comes with a price. Whereas, NetBeans being an open source gets a winner's place.
Well, NetBeans has a simple well-defined intuitive interface that allows you to change the configuration of the Panel/Editor as per your ease. The Editor is an improved one, and its code completion feature is faster and logical. When few letters are typed and 'Ctrl + Space' pressed, its code completion feature offers the list of possible choices in relation with the code context. The most common features and functionalities are placed in panels or tabs depending on the kind of project that is being developed. Moreover, the Refactoring code feature of IDE is context aware and can be implemented easily.We begin with NetBeans, a Sun product, which is popular amongst Java developers. The latest version of this IDE is now ready to give tough competition to Eclipse, its primary competitor in Open Source arena. Besides, having the basic Java IDE, the installation package of NetBeans supports UML, SOA, Web and JEE applications. It also comes bundled with Tomcat and GlassFish runtimes.