- We design and build extraordinary applications for companies looking to make the next great idea a reality.
- learn more
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.
Comments: 1 so far
Leave a comment
About Pathfinder
Recent
- IE8 Beta 2 Released
- Faster JavaScript for Firefox 3.1 Thru JIT
- Implementing linked multiselects with jQuery, LiveQuery, and Low Pro: Part 2: First pass at the actual code
- I’m Cranky Because I’m Not Getting Enough REST
- Flex Gauge Component Example with source
- Plugging Some Cool Tools
- Implementing linked multiselects with jQuery, LiveQuery, and Low Pro: Part 1: Requirements and interaction design
- Many Varied Components, or… Multi Variable Complexity, or… Mainly Vanilla Coding
- Custom Flex 3 Lightweight Preloader with source code
- Mass Assigning Inheritance Column Values for ActiveRecord STI with Rails
Archives
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006


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