I spoke this morning at Club Java in Paris. I’m on my way home from Eclipse Forum Europe and, of course, couldn’t pass up such a great opportunity to speak to a developer community (I’ve been speaking at a lot of Java User Group meetings lately). Vlad, who organized my attendence here, gave me the big tour of Paris last night. We hit all the well-known spots, if only briefly. It’s been many years (24) since I’ve been to Paris, so it was really nice to get out and see everything. Next time I’m here, I’m going to plan on spending a little more time so that I can get out and properly see things.
Naturally, as has been the trend over the past few months, I spoke to the Club Java about Eclipse Rich Client Platform. I tend to focus more and more on the RCP component model provided by the Equinox project; frankly, I believe that this is one of the stronger reasons for adopting RCP. The ability to assemble components and strictly manage visibility between components is pretty powerful. The ability to manage multiple versions of the components is also a powerful and important ability when you use RCP to integrate components provided by multiple teams (not all teams will necessarily be using the same versions of the same libraries at all times). Gone are the days of carefully positioning JAR files on your classpath. This is a Good Thing(tm).
The declarative nature of component configuration is also handy. First, it makes configuration of components much easier. While there are great tools for doing this in the PDE, in a pinch you can easy drop into the files with a text editor and tweak them. Best of all, the declarative information generally provides enough information to the runtime environment about the components so that they don’t need to be loaded until actual code is required from them.
Of course the ability to have real components in a system makes it possible to extend and update your application. Without components, this wouldn’t be possible. Then there’s the development tools. PDE provides great help in building components, except that it calls them plug-ins. That is, “component” == “plug-in”. In OSGi (the specification upon which Equinox is built) parlance, “component” == “bundle”. So we’ve been building real components all these years. How cool is that?
There are a great many reasons to love Eclipse RCP, and Equinox is certainly a big one. And you can enjoy it on the server too. How fun.