Q&A: One IDE to Rule Them All

In November 2001, IBM Corp. donated $40 million in code to launch a new open source development initiative called the Eclipse Project. Since then, Eclipse has grown by leaps and bounds—the current value of its code base is estimated at $60 to $70 billion—and supports a variety of different languages, including C, C++, COBOL and Smalltalk.

We spoke last month with Skip McGaughey, chairperson for the open source Eclipse organization, about the progress of the past two years, the efforts of the Eclipse board to court Sun Microsystems, and the extensibility of an Eclipse infrastructure that can conceivably support any programming language. Eclipse, McGaughey says, is just where it wants to be: Sitting on top of a proven, reliable infrastructure and primed for phase two of its maturation—the development of visual and usability enhancements that will allow it to vie with development tools from Microsoft, Borland, and other established vendors for market dominance.

You’ve described Eclipse as both an open source development project and a consortium. What do you mean by that?

The overriding value of Eclipse the open source project is the ability to delivery the technology based upon a meritocracy. The overriding value on the consortium side is a set of member companies that are equal to each other in terms of their authority and responsibility. A company the size of HP or Intel or IBM has the same authority as a small company the size of three or four people.

I’m glad that you mentioned that. IBM donated the initial Eclipse code base, and to this day, Big Blue is pretty firmly associated with Eclipse, at least in my experience. Do you think there’s a danger that the Eclipse development effort could be viewed as an IBM-play?

No, not at all. Other companies are contributing. In the C [and] C++ world, you’ve got companies like QNX and MontaVista, and they’re contributing in the C++ area, and many other companies are contributing in the test environments.

In fact, the board has rejected some of IBM’s offerings and reconstituted others. The C++ is a good example of that. IBM came in and offered to make some contributions, which were rejected. I think that the growth [of Eclipse] says a lot about how open and free from the dominance of any one vendor it is. Since its inception, Eclipse has evolved the organizational side from nine member companies to 47 member companies. Today, IBM has no greater or lesser say in the direction [of Eclipse] than any of these other companies.

I’m not sure I’m clear about the participation of some of the Eclipse member companies. When I spoke with Oracle [an Eclipse member], I was told that Oracle wasn’t supporting Eclipse as its IDE per se, but that it wanted to ensure that stuff that was written for its Web application server in Eclipse would run smoothly once it’s deployed. So what kinds of participation are you seeing from some of the heavyweights, other than IBM?

All of the 47 companies that are currently associated with Eclipse have all publicly committed to build commercial offerings on Eclipse, and there are hundreds and hundreds of projects around the world that are using Eclipse to build projects to enhance their offerings. Now what form these [commercial offerings] take is up to [the companies]. TogetherSoft, which has been acquired by Borland, has an entire division based on Eclipse, and Sybase has a strong commitment, too. What’s important is that Eclipse is all about technology. It’s all about providing a platform for tool integration and interoperability, so we welcome contributions by anybody to expand that platform, even if participation is limited to those tools that are dedicated to interoperability and integration.

On a related note, you’ve long courted Sun MicroSystems, which backs NetBeans [a rival open source development framework], to join Eclipse, but Sun officially rebuffed your efforts last month. Can you explain what happened here?

We welcome contributions by anybody to expand the [Eclipse] platform, and there’s a lot of technology in NetBeans that’s really, really good, and we would like to see that into the Eclipse world. There’s also stuff in Eclipse that might find itself into NetBeans, for example. We would love to have companies participate in whatever way they want to, because we are open and agnostic, and we’re dedicated to the technology and the competitive position.

Right. But why haven’t you been able to bring Sun on board, do you think? I mean, was there a serious effort made to court them?

Right after the board was formed, the very first March right after 2001, the board unanimously invited Oracle, BEA, Sun, and others to join Eclipse and derived this policy … about being dedicated to the technology and not engaged in competitive positioning. For the last nine months, we have been working very closely with Sun, and Sun has been working very closely with Eclipse, trying to figure out a way that we could make it worth Sun’s while to join Eclipse. This involved everything from technology changes and discussions, to the point that we [Eclipse] were even willing to change the name of Eclipse, but Sun for reasons that they need to articulate, chose not to join.

I want to switch gears and talk about language support. Eclipse isn’t just a Java IDE, although one of IBM’s most prominent new tools [WebSphere Studio] is built on top of it. How many different programming languages do you intend for Eclipse to support?

As many as the community would support. Eclipse today has several primary technology organizational initiatives. The first is the Eclipse platform itself, and this is a very rigid open-source development environment with very defined plans, test scenarios, platform support plans, and requirements. The goal there is to design an extensible, reliable platform that people can build tools on.

The second [initiative] is the tools project management, which supports tools that fit on top of Eclipse, and that’s where the C/C++ development environment is being developed, where there’s visual construction of tooling going on, where there’s testing going on.

The third open source initiative area is called the technology area, and that’s where the incubators are created, where the university research organizations and people with intense skills are taking Eclipse and pushing it into new areas. This is where a lot of the languages are being evolved. There’s a lot of work coming out of Xerox PARC, an awful lot of work being spawned in this research area. We anticipate lots and lots of languages here, and the base platform of eclipse was designed for language interoperability. It was created from the ground up to provide an extensible, reliable platform so that whoever wants to build [languages] on top of it can.

So Eclipse is basically designed to support any conceivable programming language?

So as long as the community wants to support a specific language, it can be built into Eclipse, so the goal here is to have a language choice built on top of a platform of choice, and that’s what we’re delivering right now.

Let’s switch gears again to another issue—that of usability. Eclipse arguably isn’t as easy to use as, say, Microsoft’s Visual Studio .NET IDE—and it’s probably unfair to expect it to be. Do you feel that there’s a usability gap between the two IDEs, and, if so, can you give me an idea of how you’re attacking it?

When you look at Eclipse, it’s only two years old, so the design goal of Eclipse was, we need to go build a very strong infrastructure that will enable all different kinds of languages, platforms, vendor contributions, etc.

The community has agreed that improving and enhancing the user experience is one of the top priorities of Eclipse, and so two board meetings ago the board initiated a set of visual enhancements [to Eclipse]. The goal there is to take the base infrastructure that you see in Eclipse today and to enhance it, so that you can have a simpler user experience and you can take advantage of underlying infrastructure, based on your skill set and the problems you’re trying to solve.

So what we’re doing with Eclipse is we’re now enhancing the user experience, the capabilities, enhancements, because we’ve built the infrastructure over the past two years. So today Eclipse is very strong in the traditional Java, C, and C++ environments, but we’re going to be expanding into other languages, and we’re going to be expanding into the rich client domain where the emphasis will really be on an integrated, easy-to-use user experience. This was a fundamental concept because we decided to build the underlying infrastructure first, rather than building the user experience first.

Microsoft and Borland have spent years refining the usability of their development tools. What specific strategies will you employ to close this gap, and how rapidly can it be done?

We have the involvement of the open source community, and the basis of open source is based on a community of developers who want to contribute, so there’s a wide consensus that we want to improve in these areas, and to utilize the infrastructure that we have now developed to enhance the user experience. These [open source] programmers all have multiple, different skills, solve different problems, and take different approaches to the development process.

As these thousands and thousands of programmers all over the world are developing Eclipse and developing apps with Eclipse, as they discover new opportunities for enhancement, they will enhance it. One of the real advantages here is that because [Eclipse] is so open, and has been used so extensively, new ways of solving problems get created and thought of organically, spontaneously. I believe as we make the infrastructure ubiquitous, that there will be brand new solutions to the traditional areas of navigation, simplicity, customization that will be built on top of Eclipse, that will be unique to the industry, unique to the language, and users will experience multiple kinds of satisfaction.