A Java web developer takes a look at the Java IDE landscape and examines the major offerings. IntelliJ IDEA comes out on top, hands down, according to his measurements, and he includes a detailed review.
If you Google for "best
Java web IDE hands down" you will end up with tens of thousands of results that
include praises for every integrated development environment (IDE) out there.
Everyone seems to have his or her favorite, whether it’s a simple text editor
or a memory-hogging, state-of-the-art, does-all-my-coding-for-me IDE.
This review’s objective
is to present you with concrete information on how you can increase developer
efficiency and improve code quality when developing web applications by using
the appropriate IDE. Which one will it be?
What is an IDE? A Quick Overview
An IDE is an application
comprised of tools that benefits software development. Most IDEs are comprised
of tools that:
- Allow you to edit your source code
- Automate repetitive tasks
- Compile code
- Highlight code syntax in Java Class files
- Provide code-completion as you type
- Browse Class structures
- Reformat code
- View JavaDocs
More sophisticated IDEs have enhanced tools that:
- Check code for errors as you type
- Highlight code syntax in JSP, XML and J2EE files
- Automatically create Classes, Methods, and Properties
- Integrate with source code repositories, like CVS
- Integrate with web application servers, like Apache Tomcat
- Integrate with build utilities, like Apache Ant
- Refactor code
- Visually debug code
IDEs also have plug-ins that allow third-party developers to extend the
capability of the IDE.
Introduction to the Various Products
are five applications that come to mind when answering that
question "What editor do you use for coding?" While some of these products are
well established, others are gaining momentum.
be fair, here’s a brief snippet from each of their web sites:
Eclipse – "Eclipse is a kind of universal tool
platform – an open extensible IDE for anything and nothing in
IntelliJ IDEA – "IntelliJ IDEA is
an intelligent JAVA IDE intensely focused on developer productivity."
JBuilder – "Accelerate your Java development with
Borland JBuilder the leading cross-platform environment for building
industrial-strength enterprise Java applications."
JEdit – "JEdit is a mature and well-designed
programmer’s text editor."
NetBeans – "Develop cross-platform desktop, mobile
and web applications based on industry standards utilizing the latest
technologies with our full-featured integrated development environment for Java
what the web sites tell you, if you take a look at the web developer IDE
features in a matrix, you will see that there is a big difference between them.
Real-time Code Warnings
|Download Size (approx)||23 Mb||33 Mb||453 Mb||2 Mb||76 Mb|
What Web Developers Must Look For — a Critical Comparison
While it looks like you could go with IntelliJ, NetBeans or JBuilder, let’s take a
closer look at actually using the application for web development.
|Responsive at all times||Yes||Yes|
|Quick start with existing code||Yes||Yes||Yes|
|JSP real-time validation||Yes|
|Top-notch CVS integration||Yes|
- Choose an IDE that doesn’t require lots of system resources.
You want to watch out for IDEs that are
developed primarily for Java GUI applications and tend to be sluggish in
response when working with web application source code. Even with a
powerful processor, Eclipse, JBuilder and NetBeans are sluggish which can
quickly reduce your overall enjoyment and decrease productivity. This
means that the interface is unresponsive when using menu items, panels and
entering code. IntelliJ IDEA and JEdit maintain a high-level of
to quickly be up and running with your existing source code.
When you need to code the last thing you
want is trouble from your IDE. Eclipse, IntelliJ IDEA, JBuilder, and
NetBeans have wizards for creating and importing projects around your
existing files, however some are outright challenging. Eclipse is the
most difficult in this regard and has a steep learning curve. IntelliJ
IDEA, JEdit, and NetBeans can use your existing source code directory
without a tedious import process.
an IDE that enhances your coding experience with the types of files you
Ant build files, SQL scripts, and web application descriptor files, you
will certainly need a tool that can check for errors and highlight the
syntax in those files. IntelliJ IDEA does a superb job of real-time
error-detection and syntax highlighting in JSPs. You will be amazed the
first time you forget to add a tag-lib or import directive and your source
code is immediately highlighted with errors. Other IDEs require that you
manually compile the JSP before you see any errors.
an IDE that integrates well with your source code repository.
This one is critical. Make sure you can
quickly and intuitively checkout code, update code and compare code. CVS
is a popular choice for software development, so I’ll use that as an
example. In NetBeans trying to configure "External" and "Internal" CVS
commands is confusing while IntelliJ incorporates a first-class CVS utility
that is tightly integrated. Merging and comparing hundreds of files in a
single session becomes extremely rewarding because it’s so easy to do.
A Clear Choice
evaluating the various products and being frustrated with the feature-set for
Java web applications, it’s a pleasure to have come across IntelliJ IDEA.
Here’s what makes
IntelliJ IDEA so exciting:
- Working with existing code is
quick and painless since the IDE is very responsive and uses existing source
- CVS integration is highly
accessible and more sophisticated than the other implementations; you will no
longer need to switch back and forth between the IDE and a dedicated CVS client
for complex merging
- Code is immediately analyzed
every time a file is opened and the IDE gives prompt indication of warnings,
errors and suggestions even in JSPs
- Ant scripts can be mapped to
your project and executed in the background
- IntelliJ IDEA is easy to
install and works on any Java platform, including Linux, Mac OSX, and Windows,
allowing you to change platforms as necessary
It’s also the little
things and the attention to detail that will make you more efficient. Here’s
what I like best:
- As you work locally on a
file, IntelliJ IDEA will display the lines that have changed, inserted or
deleted and allow you to see the previous lines just by moving your cursor over
the indicator of the changed line; this is independent of having access to CVS
- If a method that has not been
implemented is specified in code, then a single click will add that method to
the appropriate Class; you’ll know this because IntelliJ IDEA tells you
- A copy/paste buffer allows
you to copy all you want, then paste back any copied code using a content
- To duplicate a line, block of
text, or whatever you have selected, press a hotkey
- Code formatting and import
statement optimization can be done automatically when checking code in or
manually if you prefer
- If you decide that a variable
would have been better then repeatedly using an accessor method, let IntelliJ IDEA
introduce a variable and make the necessary changes, with your approval
- If you decide to rename a
variable, IntelliJ IDEA can display a list of what code is affected and let you
choose if the variable should be renamed in all of those instances
- If you paste a code fragment
that references a Class that has not been imported, a dialog asks if an import
statement should be created, even in JSPs
- The colors, icons, panel
layout, and the simplicity of the menus additionally make this IDE worth using
In this screenshot, you
can quickly see a few issues with a JSP that is being worked on. First, the
taglib directive is colored in red because IntelliJ IDEA senses a problem.
Sure enough, the taglib has been entered incorrectly, which results in all uses
of that tag to also be highlighted in red. If you look to the right of the
scrollbar, you can see a visual indication of all the lines that have an issue.
You can cursor over the indicator for a tip as to what’s wrong, then click to
jump to that line.
The next screenshots
show you how easy it is to work with CVS. By selecting the "CVS File View" a
panel opens to show you the files that have been changed, added, or deleted
locally, in a concise, easy to work with view.
A file from the CVS File
View can be selected and shown immediately in the editor, or the file can be
compared to the current repository version as shown in the following
Now you can choose to
visually accept the changes or make additional changes right in the comparison
window. Now that’s easy!
If you strive to reduce
repetitive tasks, reduce maintenance time, and improve code quality, then make
sure you choose the right tool for the job. For web development, the right
tool is IntelliJ IDEA. I’m so impressed with the productivity gains that it’s
what my development team will be using from now on.
To try JetBrains’ IntelliJ IDEA you can download it from the
About the Author
Matt Rajkowski is the lead software developer and architect for Centric CRM in
Norfolk, VA. He has extensive experience with Java web applications and works
in a distributed team environment on multiple platforms. He also owns and
You can usually find
him in the discussion forums at