
Image credit: So gesehen@flicker, CC BY-SA 2.0.
I have been playing around with e4 (M3+Integration) today and so far I’m not impressed. I’m keeping an open mind, and may change my opinion at a later time.
At the moment however, I would dare to say that e4 might be the “Windows Vista” moment for Eclipse. High hopes, but at the end of the day not groundbreaking enough to be interesting for a wide audience of developers (=regular java devs, web devs)
There are some things I like a lot and would like to see in 3.x, such as:
- CSS theming
- trident animations
- getting rid of the *Advisors
The biggest drawbacks in my opinion:
#1 NOT simpler, just different
From my POV app development is still too complex for the avarage developer. Here is why:
- Using dependency injection via annotations instead of having interfaces / abstract classes makes it very hard for beginners to figure out how to write classes. It is not obvious what annotations are available at any given point (@Inject, @PreDestroy, etc). The type hierarchy does not help for finding similar implementations – since there is no hierarchy
- The e4 workbench designer for the workbench model (.e4xmi) is nice, but unstable (failed to load my simple example). Editing the .e4xmi by hand or a tree-like emf editor is cryptic and less user friendly than the plugin.xml editor
- The plugin.xml is still necessary. So with the .e4xmi file we now have two .xml files that are relevant. I would like to see just one or none.
- Still too many technologies to master: Extension Points, OSGi, Workbench Model, EMF, Annotations, SWT, JFace.

“Simplify the programming model” is stated as e4’s first objective (e4-summary.odp), but I don’t think this is true at present.
#2 Still big and intimidating
I often hear the Eclipse is big, bulky and intimidating. The Eclipse e4 download packs 230 MB and all the UI clutter we are used to – but many newbies find confusing.
#3 No killer feature
If a customer asked me about migrating to e4 for a product that launches in Q4 2010, I couldn’t really recommend it. At this point I don’t see any “must have“ features yet — especially for the folks that have 3.x apps up and running.
This is bad and a bit of a catch-22 situation:
- Without some “must have” features people are going to stay with what they already know (3.x) instead taking the risk of using something new
- The longer people wait to use e4 the longer it will take to reach critical mass and a high level of maturity (i.e. most bugs found)
Looking forward to your opinions – especially if you disagree.
Kind regards,
Elias.
Tags: e4
We proudly present Riena 2.0 M5 – the first release in the 2.0 stream. As you can see by the long New & Noteworthy, we have been very active in last six weeks. Read on for my five favorite new things:
1. Pluggable Marker Decorations
The new BorderMarkerSupport draws red-borders around a widget and replaces the standard ControlDecoration. You can select either error decoration style via the Look-and-Feel settings.

2. Enhanced Master/Details Widget
The Master/Details Widget automatically links a table with the details area on the bottom (or top). It is used heavily by some of Riena’s consumers. As a result we have been receiving good feedback and have added several requested features on this milestone:
- nicer border (includes button area, separates table from buttons with a single line)
- API to participate in the life-cycle (before / after selection, apply, remove, new)
- API to ‘suggest’ a new entry – it will show in the details area and Apply will enable
- API to tweak the margin and spacing of the Master/Details widget

3. Image Button Widget
The SWT Buttons have a system-defined look that is hard to customize (for example the background color cannot be changed). Riena’s ImageButton Widget emulates a button using three images (standard, hover, pushed state).

4. Multiple Default Buttons per Controller
Riena’s Controllers have a new API that supports several default buttons per controller. The default button has a blue glow when enabled. In that state it will automatically be pushed when the user hits ENTER (anywhere).

5. Controller Testing
Controller testing is now very straightforward and has been decoupled from the UI (widgets). Just subclass AbstractSubModuleControllerTest to get started. In addition your controller has to use the new API getRidget(Class, String) instead of getRidget(String). The package org.eclipse.riena.client.controller.test in the org.eclipse.riena.tests bundle has several examples.
Read the New & Noteworthy for additional details on these items.
Tags: helios, milestone, riena
Here’s a gentle reminder that OSGi DevCon London 2010 is happening in a few weeks.

I highly recommend registering if you’re interested in OSGi. There will be people from all over the OSGi community including some great tutorials. I’ll be giving a talk regarding OSGi and API evolution… with some stories of how we handle the problem at Eclipse, how it’s handled elsewhere and what are the gaps. I’m also excited about the OSGi Development Tooling Panel that Christian Dupuis, Peter Kriens, David Savage, Toni Menzel and I will be hosting. If you were looking at a time to connect (or praiseand lambast us) with some of the OSGi Tooling folks, this would be a good time. We’re hoping for a lively and friendly discussion.
Feel free to check out the schedule online for the full listing of talks and tutorials.
I hope to see you there.
Tags: OSGi