In the last Eclipse annual release, Ganymede, there were 23 projects on the train. On the Galileo train, we have grown by 10 projects and are at 33 projects. In terms of enhancements, there are so many new things in Galileo that I’ll only talk about my five favorite things from the various projects.
For Mac users, Eclipse 3.5 will be great since now it’s possible to use Cocoa as the windowing library. As a result of the Cocoa port, you can also run Java 6 since Apple has only provided a 64 bit Java 6 VM. Furthermore, you can even use the new SWT.SHEET style bit to make your Eclipse-based applications look more native on the Mac:
In the end, it was amazing to see how quickly the Cocoa port was developed. I was one of the early adopters helped shape the port by quickly filing bugs with any issue I came across. I have to admit the first month was a bit rough as some of the crashes were very unforgiving, but hey, we’re past that now, right Kevin ;)?
As PDE project co-lead, one of the biggest things we pushed for was for revamping the target management story in Eclipse. For many years, we had a terrible preference page where you just pointed to a location on disk and got your target setup. There’s really no way to manage that in any sensible fashion so the first step was to come up with a way to specify what composes a target platform. We came up with the concept of target definitions and bundle containers. Along with that concept, came a new editor that allows you to compose target definitions and share them with your colleagues:
As a result, we also revamped the target platform preference page to be simpler and just list all the target definitions we can find:
From early feedback, most people have been very pleased with the work that the PDE team did. All I can say is that in Eclipse 3.6, look for more improvements in this area. Our goal is to make bundle development as easy as possible for people!
API Tooling Enhancements
It shouldn’t be a secret, but one of my favorite projects at Eclipse is PDE’s API Tools. The main reason is that once you start building complex applications with OSGi, good version management tools are critical. The main reason for this is that people tend to treat versions as a marketing number and not an indication of contract. The travesty of how we treat version numbers in the software world deserves its own posting, so I’ll save that for later. API Tools helps us crafting the right version number based on the changes in our code. Add a new API method, well that will be a minor version bump for you! Break API? Well that will be a major version bump for you!
In Eclipse 3.5, the API Tools team added support for execution environment validation:
This basically solves the problem of developing for a certain version of Java and using methods from a newer version of Java. Inside the Eclipse platform project, we’ve had many builds broken due to people doing this so we finally invested in creating the tooling to rectify the situation.
Another thing that was added was the ability to compare baselines within the UI:
You are now easily able to compare a bundle in your workspace with one in your baseline to see what’s changed. You can easily take a gander at what methods, fields and classes were added or removed.
In Eclipse 3.6, look for the PDE API Tools team to further improve the tooling and focus on package level versioning.
The Eclipse Memory Analyzer (MAT) project makes it debut this year as part of the Galileo train. In my opinion, it’s one of the hidden gems at Eclipse. In short, MAT will is the best heap dump analyzer out there. It has the magical ability of finding memory leaks. The best thing I can say is snap a couple heap dumps from your application and run it through MAT… see what shows up. Here are some useful resources to get you started:
We have two new packages part of the Galileo release which really representing Eclipse’s growing constituency of developers:
There is a PHP Package now for the PHP community. It’s quickly becoming one of the more popular packages people download at Eclipse.org based on the stats. The other new package is Pulsar which was built specifically for the Mobile Java community. Pulsar is essentially a mashup of the Eclipse SDK and the Eclipse MTJ projects with the ability of downloading more tools from different handset manufacturers.
I wonder what next year will hold for new packages?
Thanks for reading and hopefully I’ll see you next year for the Helios release train