Agile Ajax

Apollo - Adobe’s JVM

Apollo was announced by Adobe back in March of 2006. What is Apollo? From the Adobe Apollo official FAQ:

Apollo is the code name for a cross-operating system runtime being developed by Adobe that allows developers to leverage their existing web development skills (Flash, Flex, HTML, JavaScript, Ajax) to build and deploy Rich Internet Applications (RIAs) to the desktop.

[snip]

While a number of more traditional desktop applications can be built and targeted at the Apollo runtime, Apollo is targeted at making it easy to develop and deploy Rich Internet Applications to the desktop.

So, Flash without the browser? Actually, its a little more than that. It's supposed to have a full featured API that allows you to interact with the underlying OS (Windows XP and OS X at this point). It also appears that some fairly low level programming is possible:

Apollo 1.0 will not have built in support for communicating directly with databases. However, it will be possible to write Database drivers in ActionScript (leveraging binary or XML sockets), which would allow Apollo applications to communicate directly with a database (both local and remote).

It seems like this is the "browser without the browser" in a JVM like package that users install on their PC's and Mac's. Developers can distribute Apollo based apps much like Java applications are distributed today, depending on the presence of the previously installed runtime. The runtime is a natural continuation of the development of the flash platform, which started out in Flash 2 with simple commands and has evolved into a second generation byte code VM with JIT compilation. Apollo looks to extend that platform and allow a tighter integration between the HTML/Javascript part of the runtime and the technologies that keep the lights on at the Adobe headquarters in San Jose -- Flash and PDF. No more need for a Flex/Javascript bridge.

What's in the API? From a presentation by Adobe:

  • Offline / Occasionally Connected
  • Applications can run in background
  • Network
    • HTTP
    • XML-RPC / SOAP / Rest based web services
    • Binary and XML sockets
  • File I/O
  • Local storage / Settings API
  • Custom Chrome

Still a little nebulous, I know. I find the offline/occasionally connected support very intriguing, but right now its just a tease.

Apollo may well be successful where Flash has struggle to gain acceptance in the past. As Ajax drives acceptance of rich interaction web applications, it is helping Flash along. If Apollo is seen as a better or cleaner way of deploying Ajax applications, or even as just another viable target for existing Ajax frameworks, that should drive it's adoption. Still, Ajax prompts me to ask lots of stupid questions: how is this different from client-server; why not just use Java/Swing; why run desktop style apps in a browser; what's wrong with Flash?

There are a few open questions for Apollo. For example, ActionScript 3 eliminated eval(), i.e. you can no longer include dynamically generated ActionScript. Since some Ajax frameworks and techniques load Javascript at runtime (JSON, etc.), the lack of a ECMAScript eval() is going to be a problem. According to the above presentation, ActionScript and Javascript will coexist within the environment, so maybe there will be an eval() in the one but not the other.

Apollo is slated for prerelease in the second half of 2006 (any day now) so we'll have an answer to some of our questions soon.


Technorati : , , ,

Topics: ,

Comments: 1 so far

  1. For anyone interested and concerned with Apollo development a new forum has been launched just for the community, take a look and join in on this new technology–be one of the first to soak it up:

    http://www.codeapollo.com

    Comment by User, Tuesday, March 20, 2007 @ 9:07 pm

Leave a comment

Powered by WP Hashcash

About Pathfinder

  • We design and build extraordinary applications for companies looking to make the next great idea a reality.
  • learn more

Topics

WordPress

Comments about this site: info@pathf.com