The wealth of open source software development goodies is heaven for the developer community, but it's hell on an awards committee. Considering IDEs, debuggers, defect trackers, code coverage tools, unit testers, load testers, and so on, we could have come up with more awards here than the rest of the Bossies combined. Then there were paths that could only lead to trouble. Could we really choose a best language? Or a best development platform? Could we pick Python over Perl, or Rails over Mono?
Well, actually, no (see the sidebar, "Best open source programming language"). But we're more than ready to declare winners of the open source sweepstakes in IDEs, rich Internet apps, AJAX toolkits, and continuous integration, all areas where open source "alternatives" meet or beat their commercial counterparts.
In the open source IDE sector, the Eclipse-NetBeans rivalry was won long ago by Eclipse if all you count is market share. However, on innovation, things are not so clear. For the last two years, Eclipse has adopted a model of a platform, rather than an IDE — that is, a base framework for dozens, if not hundreds, of plug-ins supplied by partners. The result has been an IDE that is first to market with many products but that has an undeniably heavy feel. The Web is rife with articles by users, even advanced users, flummoxed by their inability to add, modify, or remove plug-ins. The "ever more functionality" approach has provided lots of tools, but at the cost of bloat and a dearth of refinement of the editing experience.
By contrast, NetBeans has hewn closely to the vision of a lightweight, responsive, and easily configurable IDE. It works to provide top-of-the-line plug-ins (its Matisse GUI designer, performance profiler, and online collaboration tools are category leaders) and to integrate them seamlessly into the IDE. This year, NetBeans had the courage to completely redesign the code-editing experience to emulate the most user-friendly editor available for Java (IntelliJ) — resulting in a greatly improved user experience. For its commitment to quality over quantity and for the courage to rip and replace modules to improve developer productivity, we salute the NetBeans team and its stellar IDE. NetBeans wins the Bossie.
Rich Internet applications (RIA), which bring a desktop-like experience to browser-based applications, fall into two camps: those employing DHTML, as most AJAX toolkits do, and those employing Flash as the presentation layer within the browser. Each of these approaches has pros and cons. Both approaches are gaining wide adoption, and we recognize leaders in both camps here.
Flash applications overcome an important limitation of AJAX applications, which are susceptible to cross-browser incompatibilities. RIAs written in Flash have nearly pixel-for-pixel compatibility across all major platforms and browsers, delivering on the promise of "write once, run everywhere" that Java Swing once claimed. According to the numbers on the Adobe Web site, the penetration rate for Flash 9 (the latest version) is about 90 percent for all markets worldwide. The leading RIA toolkits for Flash applications are OpenLaszlo, from Laszlo Systems, and Flex, from Adobe.
Both OpenLaszlo and Flex were originally commercial products. Laszlo Systems released OpenLaszlo as open source in 2004; Adobe, which acquired Flex with Macromedia in 2005, recently announced plans to release Flex under the MPL (Mozilla Public License). According to the announcement, the system will be converted to a fully open source project by early 2008. Flex 3.0, released in beta in June 2007, includes several unique features: support for the Adobe Integrated Runtime (an environment that gives Flex applications the ability to access the desktop and applications outside of the browser) and an IDE based on the popular Eclipse platform. The IDE, called Flex Builder, is a commercial application, however, and not open source.
In considering the two systems today, several factors tip the scales toward OpenLaszlo. Although Flex is a strong product (see our review of Flex 2.0), it's still not fully operating as an open source project, and it lacks the kind of community found at OpenLaszlo. Developers skilled in OpenLaszlo are easy to find, and Laszlo Systems has developed several large applications with OpenLaszlo, meaning that the code base is fairly stable, mature, and tested. Further, the OpenLaszlo compiler is able to generate a GUI in both Flash and DHTML from the same source code. It's a close race, but at the moment, OpenLaszlo has the lead for real-world development of RIAs, and it takes our prize.
The development activity around AJAX has exploded, and so has the number of open source AJAX toolkits. If you shake the pan, a half-dozen golden nuggets reveal themselves: Dojo, Rico, Prototype, and tools from Google, Microsoft (OK, not strictly open source), Zimbra, and Yahoo. But our Bossie has to go to the granddaddy of them all: Tibco General Interface, which Tibco now makes available under a BSD open source license or a commercial license. The Tibco tool is focused squarely on enterprise development, it includes a full-featured IDE, and the applications it produces are nearly indistinguishable from native desktop apps.
Continuous integration (CI) is a best practice that is starting to see wide adoption in the enterprise. It uses a model of nearly continuous building of the final product from the existing code base. The idea is that by performing a complete build every time a change is made to the code, problems can be identified at the earliest possible moment. CI servers automate the builds, and they generate extensive, detailed reports about project quality. These reports are generally published on intranets that help the development team identify fixes that must be made immediately, as well as assess progress on various metrics.
Despite the comparatively recent emergence of continuous integration, there are many open source CI servers for enterprises to choose from. The best of these, without a doubt, is CruiseControl. It works with more (in most cases, many more) development tools than its competitors, including numerous source code management systems, build systems, and report generators. CruiseControl also is available in versions that run on Java, Ruby, and .Net. And increasingly, tools vendors such as Agitar are beginning to embed CruiseControl in their products because of its extensive functionality and its record of reliability and scalability. As enterprises become more familiar with the benefits of CI, CruiseControl will be the yardstick by which all other CI solutions are measured.