Java is the #1 competitor for C#, and the Java platform is the #1 competitor for .NET.  So it should be no surprise to readers that my group (C#) is highly interested in what's happening in the world of Java IDE's.  The most recent InfoWorld has a review of Java IDE's.  There is a also sidebar on Eclipse that includes some comments on developer segmentation.  The IDE's reviewed are:

  • Borland JBuilder 2005 Enterprise, $3,500
  • IBM Rational Software Architect 6.0, $5,500
  • Oracle JDeveloper 10.1.3, $995
  • Sun Java Studio Enterprise 7, $1895 per year

The overall tone of the review is that this is a strong bunch of products.  That said, I found a few of the negatives surprising and worthy of comment.  The review is pretty negative about IBM's product being based on Eclipse.  I find this somewhat surprising given the high level of buzz around Eclipse.  Here's what the review says:

<infoworld>

IBM uses the same role-based model as Borland. RSA 6.0 is built upon several layers. Just underneath is Rational Web Developer, which omits a substantial portion of the modeling functionality; below that is Rational Application Developer, which lacks the Web-facing design capabilities. At the very base of the stack is Eclipse 3.0, the freely available Java-oriented IDE that is gaining tremendous popularity (see "Eclipse Casts a Long Shadow,").

Unfortunately, almost all of RSA's drawbacks arise from this bottom layer. First, Eclipse is not an intuitive interface. Until you've practiced with it for a long time, you are likely to come across inexplicable dialog boxes or unexpected pathways. IBM simplifies the task with a set of terrific tutorials, yet the IDE is still more difficult to navigate than JBuilder 2005 or Oracle JDeveloper.

The RSA interface is also notably slower than those two products. It never quite reaches the point of frustrating users, but it feels sluggish and lacks the snap of the other products, especially when switching among views of a project (such as moving from design to coding).

</infoworld>

The IBM/Rational product also got poor marks for C/C++ support.  Supporting modeling for C/C++ but not compilation and debugging is difficult to understand:

<infoworld>

RSA has partial support for C/C++, in addition to full support for Java. The modeling tools can perform transformations to C++ and various source code tools can analyze C++. However, the C++ IDE lacks a compiler and debugger, which must be procured and installed separately. You can install your own if you already have one of these tools, or you can download the GNU C++ compilers to do this. These features seem like an odd and incomplete addition.

</infoworld>

JetBrains' IntelliJ IDEA isn't fully reviewed, but gets a nice mention in the sidebar:

<infoworld>

For functionality comparable to Eclipse, but with an easier interface and a low price, I suggest looking at IntelliJ IDEA from JetBrains, which presents an excellent alternative that should be evaluated by any site considering adoption of Eclipse for Java development.

</infoworld>

As a side note, JetBrains also offers an add-in for Visual Studio .NET 2003 called Resharper that provides additional code-focused functionality for C# developers.

I was surprised that the review did not comment on IDE and app server coupling, whether it is loose (the IDE can be used with a variety of app servers) or tight (the IDE is tightly coupled with the same company's app server, and therefore can exploit its proprietary features).  As I understand it, there is an overall trend toward tighter coupling of IDE and app server, with a few exceptions, notably Borland and IntelliJ.  Tighter IDE/app-server coupling is a natural consequence of another trend -- that the J2 app server vendors are increasingly differentiating with proprietary features on top of the J2 standards. 

If this post manages to attract some readers who have experience with J2 app servers and IDE's, I would be very interested in hearing your thoughts on this trend.  Do you use any of the products reviewed?  Are they tightly coupled with the associated app server?  Do you view this as good (since it enables you to fully exploit the app server) or bad?  General comments on the reviews would also be interesting.  Thanks.

--Scott