Mission to Mars
Eclipse looks ahead with focus on stability and performance enhancements
In the run up to Eclipse’s much anticipated ‘Luna’ release, Diana Kupfer spoke to Eclipse Committer Paul Webster about plugin development, UI highlights, and of course, the impending mission to Mars.
JAX: We spoke almost two years ago, when the Eclipse platform team had just made the transition from Eclipse 3.x to the 4.x stream. As you said back then, “one of the main goals of the 4.x stream was to simplify plugin development when interacting with the platform Workbench services.“ Looking back, do you think this goal – simplifying plugin development – has been reached?
Webster: I think that some good progress has been made on two fronts, but I don't feel we're quite there yet. On the one front, people have been building more and more Eclipse4 based applications. The feedback we've been getting has been that they like the modelled UI and the Dependency Injection (the simplification we had hoped for), and we've published a lot of the core infrastructure as API.
On the Eclipse4 side what's still missing is access to a full range of Workbench Services. Decoupling them from the 3.x Workbench is ongoing, and the team is currently working on decoupling the Progress view and making that available for Eclipse4 applications.
On the second front, we're working on allowing Eclipse4 views to be full participants in a 3.x RCP application, by adding to 3.x extensions that can reference Eclipse4 technology. But there's more work to do here.
Some developers building RCP applications still find it necessary to add Eclipse 3.x views such as Project Explorer and the Properties View to Eclipse 4 RCP applications. Will this “mixed mode” still be necessary in Eclipse 4.4?
Yes, the work to decouple 3.x views from the workbench is still ongoing.
In terms of performance enhancements, also a big issue back then, have you been able to fix as many regressions as you wanted to or is there still a lot of work ahead of you?
Yes, we were able to address almost all of the performance issues that were concerns when Juno was released. We think there are more areas we can improve, though, so we're still working on performance.
What are your personal UI highlights in the upcoming Eclipse 4.4 release?
For me the two most interesting changes coming in Luna are Split Editors and the Dark Theme. I like Split Editors because it has been a long-standing request from the community that we're are finally able to offer thanks to the new Eclipse4 technologies (Modelled UI and DI). I think the Dark Theme is interesting because of the CSS enhancements that made it possible for editor providers to contribute colour and font changes to the theme without code changes on their part.
There was also a large contribution of PNG replacements for the SDK icon GIFs from Tony McCrary that really helped the look of the Dark Theme.
What about Workspace compatibility (in Eclipse 4.4) with earlier versions?
Luna will upgrade the workspace as usual. Kepler and Juno workspaces should just work fine. All files and file state an Indigo based workspace will upgrade fine, but as before going from Indigo to Luna will lose perspective customizations.
Are there currently enough committers involved in the Eclipse platform project to get all the work done or are you looking for help?
I'm always looking for more help! We have a good core team, with committers both inside and outside IBM. But the platform Workbench is vast, and when developers enhance and maintain the workbench components that they care about and depend on the platform improves for all consumers. That's why we've had a push with the past two releases to be more responsive to patches and get more contributors involved. I think it's been well worth the effort.
Any plans for next year, ie. Eclipse Mars, that you want to tell us about?
We'll be starting our general planning for Mars soon. I think we'll continue to pursue enhancements in the Eclipse4 space, like improvements in our CSS support, finish some service decoupling like the Progress view, and provide better support in 3.x RCP applications for pure Eclipse4 views. We'll also focus on stability and performance enhancements. But I don't have more specifics at the moment.