May be you’ve heard the buzz about the Apollo project from Adobe. Basically, it’s a desktop framework that allows the execution of applications in a machine independant mode, and provide access to local ressources of the computer (mainly filesystem). The objective is to be able to use Web applications in a non connected mode (local) for various reseaons (speed, availability of network, etc…). This is also called RDA (Rich Desktop Application )
The first remark, is that it sounds very similar to the initial objective of Java, 10 years ago! A machine independant VM, internet oriented, etc… especially with automatic upgrade features that are now parts of JavaWebStart. I am always surprised by the way industry always “re-create” the same things again and again. The good thing is that each iteration is better than previous one, but now, after the “everything is on the browser”, we are back to “local applications”. Sun had the lead some years ago, but was totally unable to drive and support the market.
About the framework, himself, there is not yet so many information, but I am afraid that it’s just a good repackaging of a local Flash player with PDF and an HTML component…Nothing really exciting, but Adobe is very good at creating the right buzz and as always, got great designers that create apps with the right waoow effect. The positive side is that Ajax/HTML are not really good technologies to build rich UI, they are just hacks, so it’s time to have something better. Not sure that Adobe will bring something better, but the fact is that there are not so many alternatives yet. Microsft is polishing is WPF framework (ok, not polishing but starting) so Adobe may have a timing advantage here.
But I have a few remarks:
- This is not standard. By developping an Apollo application, you rely on Adobe as the only provider of a technology. You can not provide your own Apollo implementation for specific devices, like mobile phones for instance. It’s a step back from the internet open standards.
- Full offline capacities won’t be for Ajax/HTML: I am quite sure that the offline capacities will only be available for Flash/Flex application. In other word, an existing Ajax/HTML based application won’t be able to run offline , or just as the equivalent of a “save as” mode, unless it will be rewritten. So do not expect to “port” your existing application now. It’s the best way to push you to adopt Flash/Flex.
My last remark (and linked to the first one) is that on mobile for once are not to far away. The availability of Ajax enabled browsers was limited (read non existant), so all rich applications are made using this kind of concept through J2ME, FlashLite, native, etc…and framework (like Mobease Widget one) are built on top of these technologies.
As I’ve previously explained, mobile is most of the time more about synchronisation than browsing (for mails, address, news, etc…) and such locally running app with connected capacities are the best answers.
That’s why Apollo go into the right direction even if there is still a lot of weaknesses in the approach, so let’s see how others react – Microsoft is doing WPF . Is there any attempt from the opensource community to propose something like this? OpenLaszlo? FireFox with XUL?
Note: during the preparation of this note, I’ve discovered “SideWinder“, which seems to be a project that attempt to build a framework for connected/non connected internet application. Seems highly interesting, but also not very mature as I was not able to run a single demo…