Five Reasons To Be Excited About the Eclipse Ecosystem
When I think about the future of application development, I keep getting drawn back to the Eclipse e4 project. The goals of the project are to make it easier to write plugins and allow better control over the look of Eclipse based products. But the key is that it will provide a uniform platform across computing environments - real single-sourcing to allow you to deploy your application to any platform - whether that's embedded, web, desktop, server or the cloud.
One of the best things about this project is that it's planned for a first major release in 2010. That gives people like you and me the chance to get in there, contribute to the project, and ensure that it goes in the direction that will suit the majority.
Without a doubt, this is my favourite project in the ecosystem. I'm so impressed that I've even gotten involved in the project to help develop an Eclipse based Twitter client (TweetHub) that is built on the Twitter provider.
At it's core, ECF is a framework supporting the development of distrubuted Eclipse-based tools and applications. There are providers for most of the popular communication tools - such as XMPP (Google Talk), Yahoo, Skype and more. As a result of this, you can integrate your communications tools into your Eclipse IDE, or your RCP based application.
Try out the Real Time Shared Editing support though, and you won't fail to be impressed. This feature allows full syncronisation between two Eclipse IDEs, editing the same source file and synchronising updates across the wire. Real pair programming, without having to give up your keyboard!
ECF 3.0 will be released on the Galileo release train and will include an implementation of RFC 119 - Distributed OSGi.
While we wait for e4 to be complete, there's no reason that you can't create Eclipse based applications to run on your browser. The RAP project allows you to create AJAX-enabled web applications using the workbench extension points, JFace and a widget API based on SWT.
If you've been wondering what platform to use for your latest web app or mashup, maybe RAP will suit you? RAP 1.2 will be released on the Galileo release train.
When it comes to developing applications quickly, model-driven development is where it's at these days. The Eclipse community has a whole umbrella project for their modelling tools and APIs. The project that most people will be familiar with is probably EMF - a modelling framework and code generation facility for building tools based on a data model. There's also GMF, allowing you to create graphical editors based on EMF and GEF.
It's impossible to ignore Equinox in a rundown of Eclipse projects. At the core of every RCP based application, you've got Equinox - an implementation of the OSGi R4 core framework specification - helping you to run OSGi based systems. It can also be used as a standalone OSGi implementation. So you can run it on your server, as well as on your desktop.
I believe that the projects I've listed here have a huge part to play in the future of Java application development. Of course there are many more projects I could add to this list. I'd be interested to hear your thoughts on the projects in the Eclipse community, and what ones you think are the most important. Don't forget, these projects always welcome help whether it's contributing fixes, finding bugs or simply writing articles about them.