The market-share leader among Java IDEs is unquestionably Eclipse, the platform freely available from the Eclipse Foundation. Its success stems from several factors: the foundation's vendor independence, its considerable ability to forge partnerships, and a key product design decision.
Just before the 2004 release of Version 3.0 of the IDE, IBM -- then-owner of Eclipse -- decided to migrate the platform to a new plug-in architecture called OSGi (Open Services Gateway initiative). The OSGi framework provides the automotive industry with a simple, reliable software backplane for plugging in modules to customize features of various car models on the market today. By choosing OSGi, Eclipse gave developers an elegant and well-designed plug-in interface. Since that release, hundreds of plug-ins have come to market and greatly expanded the capabilities of Eclipse.
Genuitec has been particularly active in porting and developing these plug-ins for Eclipse, and it just released Version 5.0 of its signature product, MyEclipse. This productized collection of plug-ins smoothly expands Eclipse functionality at a competitive price. I found few things to complain about, save for the fact that many of the plug-ins provide only basic functionality.
Version 3.83 of MyEclipse Enterprise Workbench was reviewed in early 2005 and found to be a useful, well integrated set of plug-ins. Back then, a developer could re-create the package by downloading the individual plug-ins and importing them into Eclipse.
Today, that's no longer true. Most of the functionality available today is developed in-house or ported by engineers at Genuitec, so the plug-ins are not commonly available from other sources. In fact, Genuitec relies on this added value to distinguish its products from the greater universe of Eclipse plug-ins.
The new version of Workbench ships as an annual subscription with two levels: the standard edition at US$29.95 plus a weird 6 percent handling fee (rather odd for a downloadable product), or the Professional Edition at US$49.95 (plus that 6 percent fee) per year. Most developers will want the full functionality of the Professional Edition, which is what I review here.
MyEclipse subscriptions follow a mainframe-style model: If the subscription is not renewed, many of the added functions cease working. You can still use the basic IDE, but MyEclipse will pop up a steady stream of dialog boxes asking you to renew. Given the low price of renewing, one can live with these annoyances, but I'd much prefer a subscription model where you can keep using the product you paid for -- you simply don't get new releases or tech support until you renew.
Java, Java everywhere
MyEclipse traditionally has been oriented toward enterprise Java, and the 5.0 release maintains this philosophy. One of the key additions is a UML editor, which supports the "big six" UML diagrams: use-case, class, collaboration, state, activity, and deployment. The editor has solid, if unremarkable, functionality and can generate code from class diagrams and likewise class diagrams from source code. It also can export diagrams in industry-standard XMI format. The package adds a basic image editor, too, although it's more suited for touch-ups than for drawing an image from scratch.
MyEclipse's DB Explorer facilitates access to databases. This release provides the ability to view triggers, functions, and procedures in Microsoft SQL Server and Sybase. It can generate the needed DDL, and it has wizards for developing and running functions and procedures on the fly. In addition, MyEclipse supports v. 3.1 of the widely used Hibernate framework.
MyEclipse 5.0 also has built-in support for deploying applications to an astonishingly wide variety of Java servers, including Caucho Resin, Red Hat JBoss, Adobe/Macromedia JRun, Oracle, Apache Tomcat, BEA WebLogic, and IBM Websphere.
I found client-facing Web interfaces well served in this release. At the most elementary level there is a good HTML Visual Designer with tabbed views for design, coding, and a CSS editor. The HTML editor in particular is an elegant, easy-to-use tool. A separate Visual Web Designer provides support for Struts and JSF (JavaServer Faces).
On the client side
The biggest jewel in MyEclipse 5.0 is the inclusion of the Matisse GUI designer. Sun developed this product for its NetBeans IDE.
In a nutshell, Matisse is probably the best available GUI designer for Java, laudable especially for its ease of use. Its inclusion in this suite has an ironic aspect, as Matisse generates code for Swing only -- the archrival of SWT, which is Eclipse's GUI toolkit. However, because Swing has always been a distinct super-set of SWT functionality, it is the only choice for complex desktop applications. Hence, Matisse makes a lot of sense for Eclipse users who now have a great tool for creating these advanced interfaces. (The only shortcoming of note is that Matisse does not yet run on the MacOS version of MyEclipse.)
Broad but shallow
As much as I was impressed by MyEclipse 5.0's range of plug-ins, however, I was disappointed with their lack of depth. Save for Matisse and the Visual HTML editor, most of the products had workaday functionality but little more. As such, they will appeal most to developers who have limited need for these various technologies and who don't require high-end features.
Despite this, the items in MyEclipse form a comprehensive suite. They are reminiscent of IBM's high-end Rational developer tools. In some areas, such as UML support, IBM is far and away more capable; but in other domains, such as GUI development for Swing, IBM has no response to MyEclipse.
The biggest difference between the two suites is price. There, Genuitec's subscription model routs IBM's four-figure cost of entry. And given that both products are built on Eclipse, sites evaluating Rational IDEs should make sure to examine MyEclipse first. They are likely to find what they need at a fraction of the cost.