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: |
NetBeans 6.0
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.
Usability and Code assistance
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.
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 code completion feature not only provides choices with context related options, but also gives JavaDoc explanation |
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.
MyEclipse plug-in adds Struts support to Eclipse and provides added features like JSP Editor with designer |
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.
IDEA has an option for downloading Struts libraries within the interface, required for application development |
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.