Last week I had the chance for a unique and amazing experience: being co-trainer, side-by-side with Lars Vogel, for the first Eclipse e4 Training in Italy! It has been a five days of intensive and engaging learning time, alternating slides presentation for showing the concepts to live-coding from-scratch examples. Further, after every presentation, the participants had the chance to practice the just learned concepts, ask, share doubts and approaching techniques.
Since the very first moments it emerged how powerful is this new development platform; here are some among the main advantages, with respect to the previous 3.x way.
In e4 the entire application is modeled with an EMF model instance, which makes much more intuitive to change the various aspects and contents of data. From menus to parts (no more distinction between views and editors now), from commands to handlers, every element is easier to define and use. Moreover, the ability to change the application model at run-time makes it possible, and often surprisingly easy, several useful things (like for example customizing the toolbar or the status bar).
No more complicated ways to get the shell, the display or for finding a part: now the dependency injection mechanism, based on a powerful annotation system, provide you what you need and exactly where you need it; you just have them ready to be called.
You can define OSGi services and make them available in an extremely loose-coupled way. No strict depencencies among plug-ins, but dynamic discovering of available services helps you to make highly and dynamically configurable applications. Further, the new platform makes available services for event communication, interact with the hierarchical contexts, handling the selection service, part service and several others.
Extending the Application model
Here is where we have a sort of positive revolution: now, since the application model is EMF based, a contribution to an existing e4 application is consequently done in the EMF way, that is creating a model sub-tree which will plug and extend the application itself.
Declarative styling with CSS
One of the most interesting feature of e4 is the ability to customize the application styling and look&feel not simply in some declarative way, but exactly with Cascade Style Sheets declarative way! So now you can change the look&feel of you application leveraging from CSS, a well consolidated technique, no more relegated to the web development.
Pluggable Renderer Framework
Still, e4 user interface rendering has been completely decoupled from the application model and made pluggable! So SWT is now just one of the several possible choices for the user interface library; you could decide to use JavaFX for example, or Swing, or Ã”Ã‡Âª well, it’s really up to you: just think that there is a project (Vaaclipse) that allows to render your e4 application (with all the advantages that this imply) as a Web Application.
Reaction from the participants
From the very first day, as soon as the participants started to exercise by themselves, the reactions were often like these:
Ã”Ã‡Â£Too easy!Ã”Ã‡Ã˜, Ã”Ã‡Â£Seems like magic!Ã”Ã‡Ã˜, Ã”Ã‡Â£Can’t be this cool!Ã”Ã‡Ã˜, Ã”Ã‡Â£PowerfulÃ”Ã‡Ã˜, Ã”Ã‡Â£FantasticÃ”Ã‡Ã˜
Not to speak about who had a background with Eclipse 3.x development:
Ã”Ã‡Â£I can never use Eclipse 3.x for RCP development!Ã”Ã‡Ã˜
Temporary little drawbacks
The only drawback is that currently the new programming model can’t be easily used with the Eclipse IDE. However this missing feature is handled in Bug 376486.
The announcement from the Eclipse Foundation that there will be no more support with the 3.x development is definitely the affirmation of a newer and powerful platform for software development. If among you are people that are thinking things like Ã”Ã‡Â£Our company has invested so much in Eclipse 3.x, why should now we start again with a new technology?Ã”Ã‡Ã˜ I will answer that first of all you have plenty of solutions for migrating (at different levels) your Eclipse 3.x applications to e4. But above all I will say that there are lots of examples of real cases where maintenance is now much, much faster than before.
For an introduction to e4 we invite you to follow the following tutorials, both from us and from Lars Vogel.