Wednesday, 16 April 2008

OSGi adoption by Sun

... well, not quite, but close and I always thought that Sun were dead set against OSGi. It is brilliant news if they are starting to realise how important OSGi is and how much time it can save in endless discussion about putting modularity in to the Java platform.

Yes, Java is missing modularity, especially when compared to what the OSGi specification adds, but I like Java just the way it is. OSGi is a fantastic specification for enabling modularity on a great a programming language. If you "clutter" (for want of a better word) the core language with such things, it stifles creativity at the foundation level. So I will always vote to keep them seperate, but adoption of the specification by Sun is fantastic news for everyone.

I also think this is fantastic news because I see J2EE and RDMBS becoming obsolete eventually. My "dream architecture" is based on OSGi and OODBMS and some kind of open UI specification not implemented in the core language. Swing is cool, don't get me wrong, but again I'm all for seperating the core language from such things as UI.

As readers will probably know my current UI preference is Flex, which is obviously nothing to do with the core Java language, but it is highly compatible and an extremely productive environment for developing applications with a UI. Adobe are often criticised for not opening Flex in to an open specification, but I can understand why it isn't and the underlying programming language (ActionScript) actually is an open specification already.

Right now, for enterprise web based applications my technology choices would be:
  • "Server enabled" Equinox
  • Db4o for the database
  • Flex for the user interface
This architecture may not sound very scalable, but I have removed a number of layers which do nothing but transform objects and reduced the stress on the server by adopting a rich client platform.

For desktop applications I will still jump back to using Eclipse RCP, but AIR is becoming more attractive and I am heading to it as a preference because now that I am becoming more experienced with Flex I am finding it easier to build user interfaces with Flex than with Eclipse, even with my Eclipse SDK experience. A lot of that is down to the simplicity of the APIs and some of the language features (e.g. variable bindings). Also, the skinning you can do with Flex apps is very good indeed. My current favourite skin/theme is this:

How could you do that with Eclipse?

Still, with E4 on the horizon and the rumours I've been hearing and screenshots I've been seeing, Eclipse will continue to have a lot of attraction to a lot of people. I will be finding out more about it in detail on Friday.

No comments: