Archive for April, 2008

on AIR tour 2008

Wednesday, April 2nd, 2008

Today, I really enjoyed attending to the French conference of Adobe’s “on AIR tour” spring 2008 Europe.

Presentations’ quality was really good and the guys from Adobe were truly committed to making themselves available for having the audience chat with them during pauses. I just might criticize a little overlap – some concepts have been addressed in several presentations – but education is about repetition, so there is nothing wrong here.

Some buzz, of course, but not too much… I could just joke a little bit about “these Evangelists talking a lot about Leveraging technologies for a great (user) Experience”.
Strange enough, I must confess that I would have hard time translating those 3 words in French: Evangelist (I mean the one preaching for technology), Leveraging (currently this term seems to have a very comprehensive scope) and User Experience (or just Experience). No need to say that it is an evidence of France being somewhat left behind current web trends!

It is rather easy to explain what AIR is about; let’s imagine you are a web developer, used to using Flex or Javascript, then AIR will allow you to seamlessly (ok, another buzzword – but it seems accurate here) transform/extand your in-browser program into a genuine desktop application. Moreover, this app will natively run in a Mac, Windows or Linux environment. Two important things to notice:
1) an AIR application can really use usual OSs services, like files management, menus, windows control, etc
2) Since an AIR application potentially remains a web app, while gaining unlimited access (within user’s rights, of course) to desktop resources, it could become the favorite target of web pirates. This is the reason why the default design of such application cleanly separates two sandboxes (the web part and the desktop part). Of course, it is possible to establish a communication between both sandboxes, but it requires some additional – on purpose – work.

As an experienced C++ developer, I cannot say that programming in Javascript is something I am usually looking forward to. Trying to have the same code behave in the same way inside various browsers is something I have always considered as a fuzzy process! However, having the very same user interface available as a true desktop application and as a light client application is really becoming something users are now asking for.

Of course, it would not be wise to write complex application logic with Javascript, but after all, keeping C++ as the prefered language for this tier and switching to Javascript for user interface is a good way to ascertain than both layers are neatly separated.

My current application already uses a Java tier for persistence. In this case, the Java Native Interface between C++ and Java is the place where data processing and data storage are neatly separated. Isolating C++ business processes as services for the Javascript user interface could become a similar process – even for the desktop application.

No need to say that performances could suffer from such architecture, but Adobe provides a nice component to address this issue: Life Cycle Data Services (DS), and its open source subpart Blaze DS.

I must confess that I have been lurking into Firefox XUL environment for some years, while not being able to make the decision to use it, for two reasons:
- first XUL is fully embedded inside Firefox, and as such limited as a true desktop application;
- then I once heard Firefox evangelists explicitly assert that they are fully dedicated to the browser; and I have always guessed that they only consider external XUL apps as byproducts. In my opinion, it explains the reason why doing rather simple things, like changing chromes, always appeared to me as a rather tricky process during the demos I attended to, because the XUL app must always be careful not to interfere with/put the mess in user’s Firefox settings.

AIR appears as a far more efficient concept because AIR apps are plain vanilla desktop apps (a true .exe in Windows). It also compares favorably against Java, whose JVM can sometimes be a true limitation (not speaking of the deployment nightmare when multiple versions of the JVM are installed in the same computer – and it is, unfortunately, the usual case!).

Time will tell if, as a chronically overworked character, I will manage to invest the needed time (even if limited) to adopt AIR…
However, I am pretty much confident in the fact that AIR and Blaze DS will give birth to a brand new type of applications… Evangelists will tell you that developers now have the proper tools to leverage every facet in favor of a great user experience ;-)

Valuable resources:

The future of health care… from Microsoft

Tuesday, April 1st, 2008

To sum up the whole thing: since doctors no longer need to touch patients… they can spend lots of time speaking to the walls!