It is interesting to see how Eclipse is becoming the tool platform for languages beyond Java. ";Eclipse has never been about Java," says Milinkovich. "We happen to implement in Java, but we have always been interested in developing tooling for as many languages and as many platforms as we can find interested parties willing to lead projects. C and C++ have been very successful for us. Having first-class support for PHP from Eclipse is also very important for the Eclipse community."
It is an easy decision for vendors like Adobe or Zend, or for open source communities looking for an IDE for up-and-coming languages like Ruby. If you set out to build an IDE, a lot of the work is in the infrastructure and plumbing. Eclipse gives you that free; and across multiple platforms.
Best on Windows?
The Eclipse platform is built using the Standard Widget Toolkit, which wraps native platform widgets in a cross-platform Java API. The idea of SWT is to provide excellent platform fidelity; but in consequence, there are more differences between platforms.
Is Eclipse best on Windows, acceptable on the Mac, and below par on Linux? "On the Mac in particular, I've been told that Eclipse running on the new Intel Macs are showing a major performance improvement," says Milinkovich. "On the Linux side, there have been some committers on Eclipse that have contributed back to GTK in the past to try to help with performance, but Eclipse is a very complex user interface and we're really straining the bounds of what GTK is capable of.
"I've talked to the SWT team about this several times and they really do feel that they've done everything they can do in SWT to make the performance better on Linux. Now there are some things coming in Cairo [a vector-based cross-platform graphics library] which are improving the situation on Linux as well. For example, getting printing working properly."
"The fact of the matter is, right now Win32 is probably the most finely-tuned GUI platform out there," he continues. "That's just a statement of fact. They've been at it a long time and they've got enormous resources, so they're fast."
These are contentious remarks, but in truth, one of the design goals of Eclipse was to compete effectively with Microsoft's Visual Studio. When Eclipse was formed five years ago, it was felt that this could not be done with Swing, the native Java GUI framework. That argument is now hard to sustain, but goes some way to explain why Eclipse is a good Windows citizen. Still, as Milinkovich notes: "There are a lot of Eclipse users on Linux and the Mac that are very happy with the performance."
IBM in disguise?
Eclipse was formed in 2001, when IBM open sourced a large part of its code for the Websphere Studio Java IDE. Eclipse could not have happened without IBM, but its large presence has raised suspicions among its competitors.
Borland's former CEO, Dale Fuller, assured me back in 2003 that Eclipse was full of "little booby traps" which direct you towards Websphere. Since then Borland has reversed its attitude, and the forthcoming JBuilder is built on Eclipse, but suspicions remain. so, I asked Milinkovich whether Eclipse is dominated by IBM.
"The governance of Eclipse, in terms of the board of directors, the Eclipse Foundation, the byelaws, and so on, are completely open and level." he replied. "IBM does not have any special vote or any veto power within the Eclipse foundation. When the Eclipse foundation was set up, IBM agreed that all of the votes from all of the committers who work for a particular company collapse into one vote. In other words, an individual committer member at Eclipse has as much of a vote for the board representation of the committer community as all of the committers from IBM combined. So I think IBM went way beyond the call of duty when they agreed to the governance model at Eclipse."
"The other side is that they are clearly the largest patron of Eclipse, and are investing the most in terms of resources. Frankly, I think that's a good thing. I'm never going to turn away a project proposal from IBM just because it comes from IBM. But we have seen over the last two years a significant drop in the proportion that IBM represents at Eclipse in terms of the committer population. They've dropped from somewhere around 80 per cent in 2004 to just below 50 per cent now. We're doing that by growing the number of projects and committers at Eclipse, not by turning away good ideas or good people from IBM."
Committers are those who have write access to the Eclipse code repositories. To become a committer you have to be elected by existing committers on a project. That is the only requirement, so committers can be individuals or from companies which are not Eclipse members. Milinkovich estimates that "15 per cent of our committer population are individuals".