IntelliJ IDEA 5.0: can it survive the Eclipse onslaught?
Sometimes less is more
Review The rise and rise of Eclipse is a mixed blessing for developers. There are obvious benefits in the existence of such a high-quality tools platform, free and open source, and seemingly everyone bar Sun and Microsoft has signed up to use it. The downside is the pressure it puts on other independent tools vendors.
It is sad to see Borland’s excellent JBuilder becoming an Eclipse add-in, for example. In all this, IntelliJ IDEA from JetBrains is a notable survivor. IDEA is focused on the automation of common editing tasks. The trick here is to achieve features that improve productivity without being intrusive or annoying, and in this IDEA is remarkably successful.
IDEA is a code-centric editor characterized by two key features. The first is refactoring. IDEA was among the first IDEs to include refactoring tools, and remains particularly strong in this area, with an extensive list of refactoring, intelligent implementation, and clear documentation. For example, Safe Delete will delete a class or class member only if there are no usages. If there are usages, they are listed for inspection. More complex refactorings include Generify, which attempts to convert code to take advantage of Generics, introduced in Java 5.0, and to remove unnecessary casts. This edition of IDEA includes several new or enhanced refactorings, such as Move Method and Change Method Signature. Careful refactoring is a potent tool for making code more maintainable, and IDEA is the leader in the field.
The other key feature of IDEA is called Intention Actions. JetBrains describes this as, “When IntelliJ IDEA considers that there is something wrong with your code, it suggests an Action to fix it.” For example, you might declare a JFrame before you have imported the relevant swing package. IDEA will pop up a suggestion, and pressing Alt + Enter adds the necessary import statement.
This feature is not unique to IDEA. Eclipse has Quick Fix and JBuilder has Error Insight, both of which will also suggest an import in the example given. On the other hand, IDEA takes the concept further, with a huge range of Intention Actions including refactorings and EJB-specific actions as well as error corrections. They really do speed up coding, and are easy to ignore or disable when they are not needed.
If you have second thoughts about any changes, IDEA makes it easy to go back in time. It maintains local history in the background, and choosing Recent Changes from the View menu lists your main actions, with an option to rollback or view the detail in a difference editor. External version control systems are also supported. IDEA works particularly well with CVS and Subversion (new in version 5.0), but also integrates with Perforce, StarTeam and even Visual SourceSafe.