Eclipse, the Java IDE

Background

Until about the end of 2001, Visual Age for Java was IBM's strategic Java product. VAJ is one of several Java development IDEs, somewhat unique in that it stores the source code in a repository and lets the user work on packages, classes and methods rather than source files. Takes a little getting used to, but an interesting and eventually productive experience to work with.

For all its advantages, the Visual Age paradigm is not without its flaws. It seems that maintenance, and especially keeping up with Sun's frequent updates of the Java language and libraries seems to have turned out to be a Sisyphean task. Thus, late in 2001 IBM began to leak to its customers that version 3.35 would be the final version of VAJ.

Rebirth in the Open

Of course IBM would not be IBM without a backup plan. Going with the flow, they conceived Eclipse as the Open Source successor to VAJ1. The Eclipse source code is available to the public under the Common Public License.

While Eclipse is still somewhat IBM's baby, and while some of the developers of Eclipse are former developers of VAJ, IBM has invited and received lots of outside participation in the project. The Eclipse.org Consortium claims that

More than 1,200 individual developers from over 150 leading software tool suppliers in 63 countries have already participated in the eclipse.org community.2
However, the "hard core" of Eclipse is a conglomerate of well known entities from the IT business world. The initial Board of Directors (an Open Source product with a Board of Directors??), in alphabetical order, had these members: No need to worry that all these software powerhouses are going soft and dedicating their fortunes to charity: The site clearly mentions that these companies, among others, are planning to release commercial add-ons to Eclipse.

Less publicized but also noteworthy is the participation of Erich Gamma, one of the Gang of Four group who literally wrote the book on Design Patterns. It can be speculated that he is a contributing force behind some of the advanced design-oriented features of Eclipse, such as Refactoring.

The combination of big money from the industry and "a thousand eyes" from the Open Source Community is helping Eclipse become a highly successful project. There are established and publicized roadmaps and milestones, announced and agreed-on priorities for bug fixes and features, and good progress is being made toward all stated goals. Eclipse R1, the first release version, is already a fully usable programming environment offering in some cases a viable alternative to competing products like Visual Café, JBuilder and Forte for Java.

The Product

Eclipse is first and foremost an environment for creating programs. Its design is very modular and component-oriented, with a view to being able to easily combine different components (plugins) to enhance the original product. The "soul" of the product is of course a source code editor and various browser view for the Java language, but already a plugin for C++ is in the works.

Eclipse is written almost completely in Java. Because the AWT does not offer enough GUI features and Swing is too slow to provide a smoothly flowing user experience, the Eclipse team has designed and implemented their own set of GUI components, called the Standard Widget Toolkit, or SWT. The SWT can be used separately from Eclipse in unrelated Java projects.

Eclipse shows some similarities to its predecessor, VAJ. VAJ developers will recognize many of the wizards, as well as the "running man" and "bug" buttons for starting program execution or the debugger, respectively. However, Eclipse also shows refreshing tendencies to find new roots in public domain tools and practices. For example, Eclipse is based on individual files, most of which are ASCII formatted and accessible to other tools. IBM's proprietary repository, whose unfathomable structure was sometimes subject to corruption and often the cause of nightmares to VAJ's users, was replaced by CVS, the Internet's favorite source code control system. Program compilation, execution, debugging and other tasks, including user-configurable ones, are controlled by Ant, the Apache/Jakarta project's successor to the Unix Make utility. Also, Eclipse is much more configurable for different JVMs than VAJ.

Eclipse has a very tolerable learning curve, with a more responsive GUI than most Java-based IDEs. R1 is already remarkably robust and stable. The editor, with syntax highlighting, automatic formatting, outlining and context sensitive help is easily adequate for most tasks, but can be replaced by an external editor. A unique feature of Eclipse is its Refactoring capability, which allows a programmer to make sweeping logical changes to one or more classes, rather than simple syntactic changes. One example of refactoring is "smart" renaming: This will rename a class and all references to it, project-wide, without affecting names of which the original name is a substring.

The Future of Eclipse

Work on Eclipse continues unabated. Release 2 is due out in May 2002. The Eclipse Team is concentrating mainly on bug fixes and usability enhancements, but a modest number of "cool" new features is also scheduled to creep in.

A visual GUI editor is planned for the near future. I expect this will make Eclipse a world class Java development tool at an unbeatable price.

Pricing and Availability

Eclipse is available for download free of charge from the Web site, www.eclipse.org . Source code, discussion groups, FAQs and other documents can be found there as well. Eclipse runs on Windows, Linux and (recently) a number of other platforms. Rather than read stale information here, you should check out the Web site if you're wondering about a particular one.

For those who scoff at free offerings, Eclipse is also sold as part of IBM's WebSphere Developer product.


Notes/References
  1. They declared the project Open Source on November 7, 2001.
  2. http://www.eclipse.org/org/main.html