Few contests in the software development community are as heated as those for the best development tool. There is hardly an experienced developer who doesn't have his or her favorite. Many developers swear by theirs; after all, these products are the tools of their trade. A good tool makes its user more productive and competitive in the market. On a larger scale, the availability of good development tools is a key contributor to the success of entire software platforms.
As always, in this year's contest the challenging task of selecting the winner fell on you; I just get to announce the outcome. This year's finalists include commercial products as well as open-source projects. Some target Java, some .NET, others do both. In the following paragraphs, I will briefly describe each finalist, ending with the winner.
- Enterprise Architect 5 from Sparx Systems
- IntelliJ™ IDEA 5.0 from JetBrains, Inc.
- Microsoft® Visual Studio™ 2005 from Microsoft Corporation
- NetBeans IDE from NetBeans.org
- Sun Java™ Studio Creator from Sun Microsystems, Inc.
- Eclipse from the Eclipse Foundation
Enterprise Architect 5
This comprehensive suite of UML design tools is developed by Sparx Systems, an Australian company. The product features full support of the UML2 standard, and is capable of generating and reverse-engineering both Java and .NET code. Support for other languages is also available. The suite provides coverage for all stages of the development process, including requirement management, design, and testing. It comes with plug-ins that allow you to link to your favorite IDE, such as the Visual Studio or Eclipse. Model-driven application development has been around for some time, and although it didn't completely displace smaller, lower-level tools (as some had speculated), it enjoys the support of a number of software development shops. Single-user license fee for the Professional Edition of this product is listed at $199.
IntelliJ™ IDEA 5.0
This well-established Java IDE is highly regarded by industry experts for its intuitive usage and innovative developer productivity enhancements. Although the price tag of $499 may seem a bit high to those accustomed to free tools, you may find IDEA well worth the money. It has an impressive feature set. In addition to an intelligent Java editor and a number of code automation tools, it comes with a visual GUI designer and editors for the various Web technologies, such as JSP, HTML, CSS, and XML. It supports development of J2EE applications and their components, such as Web and EJB modules. Support for J2ME development rounds up its coverage of the entire Java platform. Lastly, its plug-in based architecture allows you to extend IDEA with additional functionality provided by other vendors or individuals from the community.
Microsoft® Visual Studio™ 2005
Microsoft's own Visual Studio product line has been dominating the Windows® developer camp for a number of years. This tool suite targets the .NET platform and related technologies. It includes improved support for visual creation of both Windows and Web Forms, mobile device development, and data access integration. Microsoft has traditionally taken good care of its developer base; making the tools easy to use and the developers more productive results in higher returns on investment, which in turn makes Windows more attractive as an application platform. Thus, this release of Visual Studio continues to make development of .NET applications as efficient as possible, taking advantage of all the latest technologies the currently supported versions of Windows have to offer.
This finalist is a product of an open-source project, NetBeans, whose goal is to provide "rock solid" software development tools. Originally sponsored by Sun, it enjoys the support and involvement of a large international community. NetBeans provides full support of the Java platform, including J2EE and J2ME. In addition to desktop applications, whose user interfaces can be easily constructed using a visual GUI builder, it allows you to create Web applications and their components, such as EJBs and Web services. The IDE is built around a modular platform, which gives it a large degree of flexibility. Thanks to its active community, the list of available third-party plug-ins continues to expand. And, because its source code is freely available, you can build custom modules yourself. NetBeans is free for anyone to download (in fact, it is available as an option when downloading Sun's JDK) and use as the foundation for custom applications.
Sun Java™ Studio Creator
One of last year's finalists, Java Studio Creator builds upon NetBeans to deliver an IDE "for serious Web development on the Java platform." It uses a drag-and-drop approach to let you build Web applications visually, with only minimal coding. Many pre-packaged components are included, visual as well as EJBs, Web services, and database access. The visual page flow editor simplifies the task of designing multi-page applications by reducing it to a few mouse clicks. This product is regarded by many industry experts as an answer to what the Java platform has been lacking—solid, accessible visual development tools, backed by the platform founder. While not an open-source project, Java Studio Creator is available at no cost to members of the Sun Developer Network.
And the Winner Is: Eclipse
This year again you chose Eclipse as the top development tool. As a long-time Eclipse user and enthusiast, I am very much in agreement with your choice; Eclipse possesses just the right combination of features that make it attractive to me and apparently many others as well. For starters, it provides state-of-the-art support for writing Java code. Java editor functions, such as syntactic highlighting, formatting, folding, content assist, templates, and so forth, are the staple of just about all modern-day development tools. Higher-order functions, such as refactoring and source code generation, allow you to work with code as if it were a piece of playdough. Rounding up this feature set is a world-class debugger that lets you examine running code in detail, and even replace parts of it (with the proper JVM support).
Like many other successful applications in this category, Eclipse has a modular, extensible architecture consisting of components that are referred to as plug-ins. At runtime, these plug-ins collaborate together to deliver the final end-user functionaliy—a Java IDE, in this case. In fact, over the years this architecture was refined to the point where it can be used as the foundation for rich client applications (RCP), rather than just development tools. Its solid support for extensibility—plug-ins use extensions and extension points designed for that purpose—enables Eclipse developers to re-use existing state-of-the-art components where necessary and focus on delivering new, unique features. Thanks to Eclipse's open-source model and a vibrant developer community, there is no shortage of new tools, utilities, or even entire suites. It is precisely this community, consisting of individuals, commercial vendors, as well as non-profit organizations, that makes Eclipse truly unique.
Originally sponsored by a consortium of industry leaders, such as IBM, Borland, RedHat, and others, the project is now overseen by a non-profit organization, the Eclipse Foundation. The goal of this organization is to use the open-source model to get the industry to buy into a common tools and application platform, thus allowing for better component reuse and focus on solving the clients' actual business problems rather than continuously reinventing the same technology over and over. The Foundation membership has grown rapidly over the years, and includes companies often considered to be mutual competitors. This fact is, in my mind, a testament to the viability of the whole idea and shows the industry commitment to the advancement of best-of-breed tools and software in general.
The Eclipse SDK, which provides an IDE bundled with plug-ins for developing Java applications (JDT) as well as extending Eclipse itself (PDE), can be downloaded from the Eclipse Foundation Web site. The Eclipse Foundation hosts many other projects, such as Web and J2EE development tools, mobile device support, modeling, reporting, testing, communication, and collaboration frameworks, to mention a few. The upcoming major release "train," codenamed Callisto, synchronizes the release of a number of these projects, and will be available this summer.
About the Author
Peter Nehrer is an independent software consultant living in Toronto, Ontario. He specializes in Eclipse-based enterprise solutions and J2EE applications. His professional interests include development tools, model-driven software development, and information sharing. He is the author and contributor to several Eclipse-related Open Source projects. Peter is an IBM Certified Solutons Developer for XML and related technologies. He holds an M.S. in Computer Science from the University of Massachusetts at Amherst, MA.