If you're looking to create an alternative to Microsoft's Visual Studio .Net, you may be able to do so in just four easy steps. First, look outside the United States for a small software tools company, preferably in a country that starts with the letter C. Second, buy said company. Third, build a Website and release some of the software you've acquired under an open source license. Fourth, wait for developers to come a-flocking.
At least, you might get that impression from watching the way Sun Microsystems and IBM have spent tens of millions of dollars in two separate high-profile efforts to court Java developers. Sun arrived at the open source dance in 2000, basing its NetBeans project on code it obtained from the Czech company NetBeans Ceska Republika a.s. NetBeans is a development tools platform on top of which vendors and open source projects can build Java tools. Sun's Forte product line is built on top of NetBeans.
IBM followed suit a year later, releasing software it acquired with its purchase of the Canadian company Object Technology International (OTI) under the project name Eclipse. Written in Java, Eclipse is an ambitious attempt to create a modular development platform that all kinds of developer tools for all kinds of languages can eventually use. IBM is building all of its WebSphere development tools (see "Sidebar 1: Eclipse, VisualAge, WebSphere: What Does It All Mean?") upon Eclipse, but the company aspires to build an ecology of products -- even those competing with IBM -- upon what it hopes to become an industry-standard platform.
Eclipse's release caused a buzz in the IT industry, in part because IBM spent 0 million on the code it eventually gave away, in part because of Big Blue's partnerships with some high-profile companies (Rational Software, Borland Software, Red Hat), and, finally, in part because the move so thoroughly aroused the ire of IBM's major Java partner, Sun Microsystems.
You don't gotta have heart
But why is IBM releasing Eclipse? And what do companies like Sun and IBM hope to gain by tripping over themselves to give away free software? "Each of them believes there's something to be gained by being perceived as the sponsor of a full-featured Java development environment," observes Rick Ross, president of JavaLobby, a Java developer advocacy group. In Ross's estimation, the position of a popular Java development platform's acknowledged steward can translate into sales of commercial development tools, professional services, and servers -- areas in which Sun and IBM are fierce competitors. "These companies are not funding these initiatives out of the goodness of their hearts, because companies don't have hearts," he adds.
What they do have is money. And no doubt IBM has put considerable resources behind Eclipse. OTI project manager Marc Erickson says his group has about 160 developers working on the Eclipse platform, whose code can be traced back to a Smalltalk development environment called Envy, which OTI turned into VisualAge for Java almost four years ago. Erickson says that his developers are also testers, since they're all using Eclipse to develop IBM's VisualAge product line.
Eclipse is not really about open source, says IDC research director Rikki Kirzner. She says that Eclipse is interesting because of IBM's partnerships, which promise to create a standard industry-supported development environment, not unlike the one Microsoft plans to build with Visual Studio .Net. But unlike Visual Studio, Eclipse's open source code base will theoretically prevent any one vendor from dominating the development tools market. "It's a different approach to development," she says. "It's an open choice approach."
It's also an approach that scares skeptics, like Java developer Artur Biesiadowski, who fears that in creating a wider market for proprietary components and tools, Eclipse, with its Standard Widget Toolkit (SWT), runs the risk of creating "a lot of third-party components that are not compatible with each other in terms of programming interface or look and feel."
NetBeans vs. Eclipse
Though NetBeans and Eclipse share many similarities (e.g., open source, Java-based, IDE platforms, large company sponsorship), they have some important differences as well. NetBeans, due in part to its 17-month head start, has a much more active user community, with active discussion lists and far more developer contributions. The general Eclipse discussion list receives about 100 posts a month right now. The NetBeans list receives twice that many each week. (See Resources for links to these discussions.) In contrast, IBM has focused on commercial partners. Borland, Rational, and QNX, for example, have all at least announced support for Eclipse, and in January 2002, Red Hat publicized its plans to work on a C/C++ module for Eclipse, an announcement that underscored another difference between the two projects: scope. While NetBeans appears to be a Java-focused initiative, IBM says it hopes Eclipse components extend to visual development languages like Lisp, Scheme, and XML, as well as scripting languages like Perl, Python, and Ruby.
The final difference -- and the one probably of greatest immediate interest to Java developers -- is Eclipse's use of its own graphics library and widget set, the SWT mentioned earlier, which replaces Java standards Swing and AWT (Abstract Windowing Toolkit). IBM claims that because SWT passes some calls directly to native widget libraries, it can make Java applications look and feel more like Win32 and Motif programs, and -- even better -- it can make Java run faster. JavaLobby's Ross says that Java developers are divided in their reaction to SWT. "Many think that IBM has taken a fantastic and much-needed step," says Ross. "Others feel IBM has set aside an important principle in the Java philosophy." (See JavaLobby's discussion of Metamorphosis and the SWT/Swing debate and "Sidebar 2: Fakeclipse: Metamorphosis Fakes the Eclipse UI").
That principle Ross refers to is Java's "Write Once, Run Anywhere" credo, and nobody is quicker to point out IBM's potential compromise of this idea than Sun Microsystems. "The problem with SWT is that SWT isn't compatible with the rest of the Java world," says Simon Phipps, Sun's chief technology evangelist, "and you can't write a program that uses both SWT and Swing, so you physically can't have a project that is compatible to both approaches to windowing." He adds that Sun and NetBeans community developers are exploring ways to integrate the two technologies, but given the barely concealed acrimony between Sun and IBM on the subject, most observers are not expecting any major breakthroughs in this area.
"It's not forking Java," says Robert Greig, a technical architect with a large UK investment bank (and a NetBeans board member). "It's perhaps true to say that IBM has forked the tools platform, but not Java as such." Greig's point is that SWT does not actually require you to make native calls in your code. It uses Java Native Interface (JNI) to call native methods in the underlying windowing library to achieve the logical SWT operation. So code written with SWT can be written once and run on any platform to which the SWT toolkit has been ported. The problem for Eclipse developers right now is that SWT has not been ported to as wide a variety of platforms as Swing. IBM says that porting is the number one priority for the Eclipse project and that work on AIX/Motif, Solaris/Motif, and QNX ports will be its focus over the next six months.
Of course, the platform generating the most developer interest in SWT is Windows. IBM promises that SWT will be fast enough and look enough like Windows to make Java a viable language on the Microsoft platform. Greig says, "For many corporate environments, people want their applications to look consistent. Developers don't want users to say, 'Aha! This is a Java application.' They want everything to fit together nicely."
Eclipse and NetBeans duke it out
Will Eclipse destroy NetBeans? Certainly both IBM and Sun have the resources to maintain the projects indefinitely. But IBM will need to provide some powerful incentives to grab the attention of NetBeans's more active developer community. While IBM faces the more difficult road to building community, it leads Sun in the partnership game and appears to have more in-house developers working on its platform. "IBM's a little more ahead of the game," says IDC's Kirzner. IBM's edge comes from having Rational, Red Hat, Borland, QNX, WebGain, and Merant, amongst others, sign up as its commercial partners. And its partners are beginning to talk about specific deliverables. Last month, for example, Rational Software began shipping Eclipse with its Rational XDE developer tools, a move that JavaLobby's Rick Ross calls "a big validation of Eclipse."
Other vendors are starting to poke and prod Eclipse right now and -- most importantly -- are trying to gage whether the project will ever graduate beyond a WebSphere-only initiative into the full-featured platform IBM hopes it becomes. "If they [IBM] improve the user experience on it [Eclipse], it has the potential to become a truly cross-platform IDE platform," says Dick Hardt, CEO of ActiveState, a vendor based in Vancouver, Canada that produces visual development tools for scripting languages. "If that's the case, and it [Eclipse] becomes popular, then it is something that we would definitely look at," he adds.
Hardt should know about IDE platforms. A few years ago, his company decided to build an IDE called Komodo on top of the Mozilla platform. "If Eclipse had been around when we started working on Komodo," he says, "we likely would have chosen Eclipse."
Hardt's endorsement says a lot about the Eclipse platform's appeal, but it will take more than vendor backing to make Eclipse advance beyond just an IBM pet project. It will take the interest and contributions of Java developers, and whether or not Big Blue has won their hearts remains to be seen.
|A Tale of Two Toolkits|
Learn more about this topic
- The Eclipse project
- The NetBeans project
- "Working the Eclipse Platform," Greg Adams and Marc Erickson (IBM developerWorks, November 2001) is a nice introduction to Eclipse
- "SWTThe Standard Widget Toolkit," Steve Northover (OTI, March 2001)
- Sun's Swing Connection page
- Eclipse discussion group
- NetBeans discussion group
- JavaLobby's discussion of Metamorphosis and the SWT/Swing debate
- For more articles on Java tools, visit the Development Tools section of JavaWorld's Topical Index
- Browse the AWT/Swing section of JavaWorld's Topical Index
- Visit JavaWorld's Industry News index page
- Visit JavaWorld's Product Reviews index page
- Sign up for JavaWorld's free weekly Industry News email newsletter
- Speak out in the JavaWorld Forum
- You'll find a wealth of IT-related articles from our sister publications at IDG.net