The Next Eclipse

We've been planning the follow-on feature release to Eclipse 2.1 since last December. In the initial draft 2.2 plan, we sketched in broad strokes an Eclipse 2.2 release to be completed early 1Q2004. As we now begin working on 2.2 in earnest, we're now thinking of being bolder, giving ourselves a bit more time, and calling the next Eclipse release 3.0. This note outlines our thinking, and what these changes would mean.

What's coming in the next Eclipse?

The kinds of changes under consideration for the next release of the Eclipse fall under these general themes:

We see an opportunity to realize significant improvements in these areas with the next Eclipse, and are actively exploring possible approaches.

Maintaining vs. breaking compatibility with Eclipse 2.1?

Maintaining compatibility incurs a cost by stifling radical improvements and making it hard to outgrow past mistakes. Breaking compatibility incurs a cost because it generally makes life more difficult for plug-in tool authors and customers alike. Some of the most exciting improvements under consideration are difficult to pursue while maintaining compatibility. For instance, changing Eclipse so that it can be used as a rich-client platform would almost certainly require breaking API changes to decouple the workbench UI from workspace and resources and parcel up workspace-free functionality into new plug-ins. The freedom to break compatibility would give us additional freedom to innovate and make the next Eclipse significantly better than it could have been had we tried to maintain compatibility.

What to call the next release?

We'd planned on calling the next Eclipse "2.2". However, incrementing the minor version number from "2.1" to "2.2" normally suggests compatibility and that existing 2.* plug-ins would run on the new release without change. Given the kinds of breaking changes we might make in the next release, this sets unrealistic expectations. Changing the version number to "3.0" suggests that existing 2.* plug-ins would not work with the 3.0 release, and would need to be ported to 3.0. This is likely closer to where we would end up.

Just how incompatible would the next release be?

We foresee that some of the Eclipse APIs would change in ways that will require rewriting portions of existing plug-ins written to the 2.* APIs. However, most of the Eclipse APIs will be the same in 3.0 as in 2.1. In general, we are satisfied with the state of all Eclipse APIs in 2.1 and have no inclination (or time) to start over. We would only break APIs in 3.0 when have a compelling case for doing so. Some of the ways we would manage things:

What would this mean for products shipping on 2.1?

Eclipse 2.1 is still the most up-to-date stable base for Eclipse plug-ins and products. Regardless of what happens with 2.2/3.0, we will continue to fix significant defects in this code base, and make them available as patches and as periodic 2.1.* maintenance releases.