This was certainly one of the busier weeks I've had this year. It's also been exhilarating and exhausting all at the same time. Here's my wrap up of the EclipseCon 2006 conference:
It seems that the Eclipse ecosystem is in full swing, with a multitude of companies showing off their wares at the EclipseCon exhibitors pavilion. There's a lot of (non-IBM) weight behind the platform, and I think it's encouraging to see so many people providing commercial offerings on top of Eclipse. There's also partners like EasyEclipse and MyEclipse that provide bundling of the base Eclipse platform with a number of integrated IDE features. Whilst I was unsure of them at first, it's like RedHat bundling Linux distributions; a way of getting the platform into the hands of users who wouldn't otherwise be able to integrate everything together. Like Greg Stein said at his keynote, as the open-source licensing moves down the chain from closed to open, companies need to shift from selling licenses to selling support services. IBM realised that some time ago, and I think these guys are also ahead of the curve on this one.
The other thing that became most obvious was that the transition to the OSGi runtime in Eclipse 3.0, and subsequent refactorings in Eclipse 3.1, was an incredibly smart move. In fact, it's almost difficult to imagine how it might have been done before the transition. This or next year will be the start of OSGi services running on the server side, and you'll be able to run (non-UI) OSGi bundles in the server in exactly the same way as in the (Eclipse) client. This might not seem that amazing at present -- you can already run the same Jar in an application server as a Swing GUI, for example --- but the OSGi allows for flexible deployments that can be started and stopped at run time, not at application assembly time. So it should be possible to hot-replace a version of an application running i n a server with new code without needing to take the server down, much like you can replace an EAR in a J2EE server on the fly. The difference is you won't need to affect any other bundles that are hosted in the same VM. This may be common knowledge amongst the server-side developers at the moment, but in the next year it's going to reach critical mass in the general developer population with OSGi servers handing the mundane tasks that custom servers currently do. For example, I doubt it's going to be long before we start seeing LDAP OSGi bundles, and an SMTP or HTTP bundle probably isn't far off. Further down the road, Servlets and EJBs will just become extension points in bundles, with the ability to start and stop EJBs by dynamic loading/unloading of bundles. The thing that will really kick this off will be Maven generating OSGi compliant bundles as part of their build process to make it trivial for Maven projects to migrate to using bundles, and an OSGi bundle repository that can be used to host (or perhaps just index) bundles for immediate availability. Combine that with internal repositories, and updating your server might just be a simple command that you can run to refresh all the latest bundles in a system (though obviously you'd want to do it on a QA testing machine first!). Look out for Equinox-specific servers (the OSGi core of Eclipse) as well as the rate of Felix (Apache's OSGi engine). Also, keep your eye on Harmony as well; as a JVM with OSGi compatibility, it's certainly the way of the future.
The other great thing about the conference is the sheer level of activity in other Eclipse projects. BIRT, for example, is coming along in leaps and bounds, even though it is unrelated to the IDE-space that Eclipse usually takes up in people's minds. Other libraries like GMF are also starting to take hold and no doubt will be used for some very impressive editor generation projects in the future. Arguments about which Java IDE and which GUI toolkit will still continue, no doubt, but there's no question of which is the better platform to build your applications on for the future. And, if you really like your old IDE, there's no reason to switch; it's perfectly possible to build OSGi-enabled bundles in other Java IDEs; you just need to ensure that the right values are set up in the Manifest.MF. You can even write Eclipse plugins if you know the format of the plugin.xml file; though experience suggests that this is perhaps not a great idea. Some people I know use InteiilJ to write Eclipse plugins; but they do all the manipulation of the plugin.xml (and testing) via an Eclipse instance; the IntelliJ is just used to crank out Java code.
I'm also going to follow up on a New Year's resolution to start getting more involved with the Eclipse codebase and contributing some fixes to the things that I've been complaining about over the years. I doubt that anything will happen in time for the code freeze at the end of this week, but hopefully I've got some ideas that may help improve some aspects for the future. Of course, now I've got some spare time on my hands now that I don't have to prepare for EclipseCon any more, I might just be able to do that. Of course, there's still a house move coming up in a few weeks, and Sam started crawling this week (whilst I was away, too!) so it's going to be an interesting challenge.
I'd also like to thank everyone whom I met who said "Thanks for your blog/tie/beer/postings" (sometimes, all at the same time). It was great to meet the faces in front of (and behind) Eclipse, and hopefully I'll get to meet you all again next year. In the meantime, for those that I didn't manage to see in person before leaving, drop me an e-mail or a LinkedIn request. My e-mail's alex.blewitt, courtesy of gmail.com.
So long, and thanks for all the votes. The Fish tie won with 30% of the votes cast, with the Guniess tie a close second at 27%. The Sax tie trailed with 23% and the Dutch Master tie was relegated to fourth place with a paltry 20% of votes. Maybe the ban on smoking meant that it was never likely to receive high marks ... Hope to see you all again next year!