earn my living as a Java consultant and have concluded that Java is far from a perfect programming language. For many applications, I prefer to use dynamic languages like Common Lisp, Ruby, or Python. However, I use Java for most of my work for two reasons:
- Freely available, high-quality infrastructure software for Web portals and services
- The high quality of Java IDEs
The only programming languages that have IDE support as good as or better than Java are Microsoft’s C# (and associated languages ASP.NET, C++, etc.) and Smalltalk. Smalltalk is a niche language that I avoid because finding experienced Smalltalk developers is difficult. I tend to stay away from Microsoft’s Visual Studio-supported languages as well, because I don’t want to be locked into Windows-only deliveries.
So, as a Java developer, my choice of IDE is important.
A No-Brainer for 4.x Users; A Choice for New Users
I use the IntelliJ IDEA Java IDE for many hours a day?it is my primary development tool. I think that version 4.5 of the product is close to perfection, but IntelliJ does have strong (and free!) competition: NetBeans (which I use for building JFC-based GUI Java applications) and Eclipse (which I sometimes use because no one IDE nicely handles Java, Ruby, C++, and Python projects). Yet JetBrains (the company that produces IntelliJ) seems to realize that they are their own best competitor, so they are offering registered users a special limited-time deal on upgrades to it’s new 5.0 version (released August 1, 2005). Until September 1, an upgrade is $149; after that, an upgrade from any previous version is $299.
If you have not tried IntelliJ before, you can always get a free 30-day evaluation license from JetBrains. Obviously, “free” evaluations aren’t really free: they require your time. If the cost of IntelliJ is not in your business’ budget, then you’re probably better off choosing one of the free Java IDEs rather than spending the time evaluating IntelliJ.
For current IntelliJ IDEA 4.x users, the 5.0 upgrade (especially with the discount offer) is an easy choice: do it. For Java programmers who use Eclipse or NetBeans, the buying decision is more difficult. In addition to the cost, they must consider the startup time for learning a new IDE. IntelliJ 5.0’s improved J2EE support (or more likely, a subset of J2EE) does make the purchase easier to justify though.
IntelliJ Version 5 Enhancements
I had been using version 5 for only about 10 days at the time of writing. I discuss only new features that I actually used (see JetBrain’s complete list of new features). JetBrains made a few menu changes to the new version, most notably:
- The Tools menu has fewer items.
- The Analyze menu has five additional items.
- The View menu has a new “Recent changes” item.
The following sections describe new features that I consider to be the most useful.
CSS Styled Editing
The IntelliJ editor is now “CSS aware”. Text is color styled. Placing the cursor at the end of a block highlights the matching begin of block. A “CSS aware” editor finds syntax errors as I edit?a real time saver!
Support for JSP 2.0 Standard
Code completion seems to work better, and the editor now supports the newer JSP 2.0 standard?even referenced file paths support code completion. Version 4.x had no structure view for JSPs. Now, version 5 offers a reasonably useful structure view for them. You can also use the XML JSPX format. Personally, I am so used to the non-XML JSP format that I am unlikely to change to JSPX. The advantage of using the XML JSPX format is that you can process your page files with an XML parser, use XPATH for searching your pages, etc. In practice, I find the non-XML JSP format easier to use.
I have not done any J2ME development for a few years, so I did not try the new J2ME project support. That said, the description of J2ME support on the JetBrains Web site looked interesting.
Version 5 supports the following three additional refactorings:
- Moving a method between classes
- Inline superclass
- Moving fields to a local scope
Support for Subversion
I have been using CVS forever. In my work flow, I like to keep all code, design artifacts, documentation, etc. under source code control. Since I plan to move up to Subversion in the future, IntelliJ Subversion support will be useful.
Installing IntelliJ 5
The install was simple, and it preserved my 4.x settings. If you want to evaluate version 5 using the free 30-day trial, you can safely use your version JDK1.4 project files. They should still be usable later if you decide not to upgrade.
IntelliJ Still the Best?For Now
For now, IntelliJ is a more productive environment than Eclipse or NetBeans because it is less intrusive to my workflow?I don’t think about using IntelliJ, I just use it. For me, it is the best Java development system. Still, in the long term, I might switch to Eclipse for most of my development and use NetBeans only for its excellent visual JFC designer. Eclipse has the advantage of being an open development platform for plugins. For example, IntelliJ has great support for JBoss development, but the JBoss Eclipse plugin looks promising. Many good user-written IntelliJ plugins are available, but I believe that a free platform like Eclipse will generate more plugin developer interest.