Sunday, November 28, 2010

I've been pretty busy...

Okay, so I've been behind my "bloggging" schedule. In fact, I've been meaning to write about the Eclipse 4 Application Platform and my proposal to improve the integration with OSGi. The discussion is still going on and it's really fascinating because we're in new territory.

It took me quite some time to feel confident enough to discuss those internals with the rest of the E4 team (some of whom have been developping Eclipse for longer than I even used it, even if I started early in 2002!). My radio silence was due to my relentless exploring of all OSGi resources I could find, including framework code (thank you freedom #1!). That included looking at Equinox, Felix, Peaberry Activation, the OSGi specifications, re-reading through and through Neil Bartlett's OSGi in Practice free book (a true gem), and more! I have been developing with OSGi for quite some time already, but going to the next level was an awesome experience.

I've been wanting to blog about the awesome BndTools as well. Don't get me wrong, I discovered OSGi through Eclipse and PDE, and I think PDE and the OSGi-aware classpath / target-platform system helped me a lot to "get" and learn to think about private packages and dependencies. But when creating many new bundles, manually managing the dependencies starts to feel like a time waste, especially when we can't do it "as well" as what a tool would do. The same goes with writing a lot of Declarative Service components, Bnd's annotations come really handy (and the DS editor in PDE suffers from some serious bugs that mess with your XML, we're now avoiding it at work).

What else? The application I develop at work will soon reach version 1.0.0. It's a custom application for a large industrial client, so what it does is off-topic here. What is more interesting is that it's built using the Eclipse 4 Application Platform as what I call a "pure" E4 application, that is it doesn't use the "Workbench Compatibility Layer" (or anything under the org.eclipse.ui package). It's only using "new API" on this side. Of course, it's built on solid and stable technology such as OSGi (a lot of it, in different ways) and SWT/JFace with DataBinding (no XWT yet). We build it with Hudson and Tycho, and we made a nice custom build because we had to work with many legacy components and some requirements on how the application should be deployed. Since I believe we are among the firsts to make a pure-E4 industrial RCP app, I have proposed an extended talk at the Eclipse Con to discuss it, and tell our experience! We'll be happy to tell you our mistakes so you can avoid doing them, and discuss how good E4 is for RCP applications in general.

Finally, I'll be giving a long talk on Scala at the Toulouse JUG this Thursday (December, 2nd). The talk will be in French, but the slides are in English. If you're around Toulouse, feel free to come but I've been told it's better if you register on the website (it's free, but it helps the organizers). I've been a Scala fan since I discovered it in 2006 (I was a functional programmer before), and even if I barely used it at work (barely is better than not at all, right?), I know it pretty well thanks to my pet projects. I'm still polishing the slides. I've already covered a lot of ground and when I think about all the stuff I decided to let aside (to keep the audience mentally sane), there's clearly a lot to say about Scala. But that's not a reason to be afraid: going back on all the languages features, I couldn't help but think how great the language is, and that I'd like to use it for daily work. I hope I will soon (what's great with OSGi is that it can make polyglot programming on the JVM transparent!).

Oh yes, since I'm a Scala fan I'm also proposing a standard talk on E4 and Scala, and what we get from mixing them.

OK, so this was pretty dense, but I promise my next posts will be more focused and detailed. Until then. ;)


  1. I'm looking forward to your EclipseCon talk :)

  2. Sounds like a fun journey. I believe it is pretty exciting to get into the next level after using a technology for some time. Sometimes after doing such a journey I feel embarrassed how little I used to know before. And the fun thing is that there seem alway to be a next level. ;-)

    Although from what you describe you might have hit level 0 in OSGi. :-)

  3. Hello Simon,
    Your talk on Scala at the Toulouse JUG was really exciting. I felt a bit frustrated that you had to squeeze some parts of your presentation because of squeduling constraints. It seems that there is so much to say about scala and you seem so passinate. Hope you'll have another occasion to finish continue this talk. The quality of your slides was really excellent.

  4. Hey rod,
    I'm glad you liked it. I was a bit disappointed to scratch what I considered the good bits, and especially because I felt that the audience was interested in knowing more. The schedule/organization was not as planned but the JUG is still trying to find a balance so it's understandable.

    It was still a fulfilling talk. I'm not sure about a second part of the talk yet, I'll see what comes up next.