In the Disneyland Hotel, 634 members of the Eclipse community from 23 countries representing 220 companies have gathered in the form of the Eclipse Foundation's first annual conference, EclipseCon. The organizers expected half that number and were pleasantly surprised to sell out. The ratio of Eclipse committers to plug in developers was good, and attendees were excited to sit down to lunch next to the likes of Erich Gamma and ask him about the core platform. Eclipse isn't a Mickey Mouse IDE anymore, it's growing up.
Eclipse Grows Up
Eclipse is growing up, but not without some growing pains. During Erich Gamma and John Weigand's opening keynote, several of the technologies introduced (for Eclipse 3.0) were focused on managing the vast number of plug ins that people have contributed. Eclipse has a very streamlined plug in publishing system which helps people easily share their innovations. Another example of such growth--Eclipse 3.0 introduces the notion of an activity. An activity is can be "Java Programming", "Developing a Plug in", "Data Modeling". Depending on what activities you have turned on Eclipse will filter its UI to only show the UI elements that are relevant to the activity. For example, if you go to the preferences page and you only have "Java Programming" activity turned on then you will not see any of the preference sheets for Plug in development. This activity feature will make it much easier to work with eclipse installations that have hundreds of plug ins without being distracted by all the menu options, wizards and editors that the extra plug ins contribute. Eclipse is still youthful technology though - during their keynote demo, the tool did exhibit some buggy behavior. Perhaps, like Windows, we need to wait for the 3.1.1 version for it to be ready for the masses? Given the interest shown at this conference, this should happen quickly.
One of the most significant features of Eclipse 3.0 is the support for the Rich Client., but the Eclipse tool is producing the comments "This doesn't look like a Java application". Given extensive history with Java on the desktop, this is a Good Thing. Eclipse is a very large app that is written in Java yet when you use it does not feel like you are using Java App. Rich client includes interesting features such as embedding Microsoft ActiveX controls (one demo showed a browser control appearing in a SWT window), and you can even embed entire JFC Swing User Interfaces inside SWT. The separation of Eclipse into a Rich Client component will provide Java with a boost on the desktop. In total the runtime libraries for Rich Client are about 4.8 Megabytes. It just might make Java on the desktop a practical reality for many desktop application teams.
Who's in charge?
Who's the leader of the club that's made for you and me? Well, Skip McGauhey, IBM employee and chairman of the Eclipse.org is stepping down to transition to a "non-IBMer". Part of growing up is leaving home. Eclipse.org had a comfortable home within IBM, but it's now at the stage where it can be cut loose from IBM and made into a free-standing non-profit organization in the style of the Apache organization. There are four nominees and a new executive director should be named in the upcoming weeks. New board members include IBM Intel Corp., Hewlett-Packard Co., SAP AG, LM Ericsson Telephone Co., MontaVista Software Inc., QNX Software Systems Ltd. and Serena Software Inc. Both the extensibility of the tool itself and the new independent organization allows Eclipse to be "loosely coupled" as described by Simon Phipps of Sun Microsystems on his Thursday keynote.
Michael Tiemann's keynote spoke about the end of Java apartheid. He reflected on the general sense of unease that the pure open source community has had about Java being not-quite-open-source. So he was excited to see that Eclipse was not only open source, but was being turned over to a group who could act as the steward for all of the agendas of the community. The key "tipping point" being less about the existence of open source projects written in Java (there are many), but more about a consensus in the community about development in Java using Eclipse.
Of course not all is happy in the brotherhood of Java. In an open letter to Eclipse members, Sun Microsystems complained of several "sticking points" including the statement "Any entry criteria requiring that Sun abandon the NetBeans open source platform directly conflicts with the concept of choice and diversity, the very bases that gave Eclipse its beginning." To be fair, it's not entirely clear where it says Sun has to abandon anything. Sun flirted with the idea of joining, but negotiations stopped in December. It was rumored that even the name of the organization "Eclipse" was up for grabs. Sun officials did not particularly like the implication of a large mass blocking out the sun. Of course now that the organization is independent from IBM, such a name change would be much harder to achieve. James Gosling's position on Eclipse is that "biodiversity is good" and "The goal is to standardize APIs so plug-ins people build on NetBeans will work with Eclipse". Interestingly, Simon Phipps represented Sun at EclipseCon with a keynote and merely stated that the conflict between IBM and Sun was "not very interesting" and went on to talk about open source.
Eclipse Membership agreement
Sun's hesitance can all be boiled down to the Eclipse organization membership agreement. Sun clearly isn't keen to be a "Strategic developer member" which requires them to commit on a full time basis, a Developer (as defined below) who shall act as leader for this project (the "Project Lead"), and a minimum of seven (7) additional Developers assigned to work on this project or other Eclipse Platform development projects." So this would likely make Sun a "strategic consumer member" (this could cost as much as half a million dollars). The relevant membership requirements are outlined in the organization bylaws, section 6.2 (ii) which states "(ii) except for Associate Members and Committer Members, make available a commercial Eclipse-based offering within twelve (12) months of joining the Eclipse Foundation or use the Eclipse Platform in the development of a commercial offering within twelve (12) months of joining the Eclipse Foundation;"
In the Magic Kingdom of Eclipse, not all the amusements are equal. Some of the tracks were much more densely occupied than others, including the rich interface sessions, which were "standing room only". Ironically, one of the IBM presentations I happened in on was somewhat sparsely attended. There was also a great deal of buzz around the Model Driven Architecture (MDA) session, particularly the EMF technology. Frank Budinsky's talk on the Eclipse Modeling Framework drew much interest, and the Birds of a Feather session about MDA ran out of room on the sign up sheet.
The last day lunch keynote was Gregor Kiczales speaking on Aspect Oriented Programming. This was well received because developers were eager to learn about AOP to solve some difficult programming problems. Secondly, it showed the openness of Eclipse to researchers and members of the academic community that are pushing the edge in software development. The extensible nature of Eclipse and the research involvement suggests that many advanced tools may be developed on eclipse first and ported to other IDE's and platforms later.
It's a Small World After All
Eclipse is still a relatively small effort compared to Java as a whole. This is not a bad thing - one of the amazing aspects of the conference was the amount of access to committers and keynote speakers. Given the rapt attention people were paying to the speakers and the clusters of developers who had to be dispersed for each next session to start, I would predict that the conference would double to 1200 people next year. The fascinating thing about Eclipse is the idea that open source gathers the interest of many disparate groups in a near-frictionless environment. In addition, it marks a unique point in the evolution of Java where a set of libraries outside the Java Runtime may grow to be very popular in runtime deployments. In the opinion of this author, the emergence of Eclipse as a thriving, independent organization represents a positive new development in the evolution of Java.