Is Adobe Apollo better than Ajax? (applications back to desktop!)

 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.

- Is JavaScript/ActionScript the right language? JavaScript is a nice language, but is it adapted to develop full applications? Remember that in a RIA, most of the application logic will reside locally while now you can have part of this logic – especially the complex one – on the server side. So suddenly you will haves thousands if not more lines of code in pure JavaScript. Was already hard to manage on the internet, might be harder with RIA? ActionScript, which is ECMA based, seems more mature than pure JavaScript, but also incompatible….

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…

Technorati Tags: , , ,

2 thoughts on “Is Adobe Apollo better than Ajax? (applications back to desktop!)”

  1. What’s old is new again…

    A few years back (before ActionScript grew up) I did a lot of work creating RIAs (internet connected applications) using a program called iShell (now found at http://tribalmedia.com – and shamefully more DVD/CD focused currently) which allowed you to work in a scripting language called Key (Eiffel influenced – bit like SmallTalk and Ruby) with a very small runtime kernel.

    I also spent some time playing around with Rebol (http://rebol.com) which is a similar concept to iShell in that it is a scripting language, with a small runtime kernel and good internet support. It’s licensing was a bit off-putting however for any real deployment.

    Bill Appleton (of SuperCard) has also built a very interesting RIA platform through DreamFactory (http://dreamfactory.com/) – again a simple scripting language and a small, portable runtime kernel – that is seeing some action in the enterprise space.

    The one thing that AJAX/Javascript really has going for it from an adoption point of view is ‘View Source’. I suspect a very large number of developers have learned html, css, etc through their browser’s view source ability – and the ability to experiment quickly without having to compile their code.

    Personally, I don’t think the problem is with Javascript – it’s evolving slowly and it’s fairly approachable for most people. I think the problem with AJAX is the document centric view of the runtime, and the limited set of basic building blocks with which to build on (a, div, etc?). OpenLaszlo (and Flex) have a more application centric design around their XML structure (canvas, view, button, contraints, binding, etc) and API’s that allow developers to more easily create the desired behaviors (drag/drop, HTTPRequest, working with XML, etc?).

    As you have mentioned Adobe has done a great job creating buzz about Flex – but keep in mind that they (Adobe as Macromedia) have been down this road before… remember ShockMachine, Central… and Flash developers have been using tools like mProjector and Screenweaver to create desktop apps for years.

    Of course, we do need a new runtime/kernel (either beyond or integrated with the browser) that provides integration with the desktop, a scripting and XML language that can be used to create applications (widgets) in a manner similar to the way that XHTML allows people to create documents. Having each and every developer deploy, update and support their own runtime libraries is silly – and Microsoft and Adobe understand that.

    I have to say I’m amazed that out of all of the ‘widget’ engines NODOBY has tried building their actual engine/kernel around OpenLaszlo’s LZX language (or Mozilla’s XUL for that matter). It’s free, open, documented, seeing reasonable adoption and would avoid the fragmentation that we’re seeing with all of these different runtimes again. If you’re business is building a runtime, spend resources designing, documentation and supporting yet another language?

    If ‘we’ (read everyone but Adobe and Microsoft) don’t start working together we are all going to be stuck building apps in Flex/Apollo, XAML/WPF/E or (grudgingly) AJAX for the years to come.

    Oh, and lastly – please don’t forget the importance of media and design. Chris Adamson has an interesting article about Java and it’s utter lack of decent media support. Images, animation, audio and video are just as important as generics, closures and IDE wars.

    http://www.oreillynet.com/onjava/blog/2006/12/rebooting_java_media_act_i_set.html

  2. Hi Thomas,

    Thanks for the mention of Sidewinder, which as you say deals in exactly this space. I’m surprised to hear that you couldn’t run any demos though…that is a real pain, and we do apologise. Would you be able to take a moment to tell us what you did? I take it you installed Sidewinder first, from the project page? After that did you try to load a URL from the command-line? A simple example is Running Adobe’s Flexstore demo as a desktop application.

    Sidewinder can do far more than that, but doing something simple like that would tell us whether something is wrong with the installation sequence.

    Thanks again for the reference, and best regards.

    Mark

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>