Apollo alpha

It's obviously been quite a while since I've managed to post something here. The combination of Adobe and Macromedia has been keeping me and many others quite busy and is now beginning to show some of the results of our combined engineering teams -- it's very exciting to see the work we've been up to starting to come to fruition. As part of this, today we released the alpha of Apollo and soon Creative Suite 3 will be released with incredible integration across the whole toolset.

One of the main forces driving the innovation and the development of the software at Adobe is seeing where developers are pushing the edge of what's possible to implement, and then enabling more developers to accomplish that kind of work.

Taking the way-back machine to 2001, you would see the web being widely used and the early signs of web sites containing not only pages but also interactive applications. These applications were primarily using HTML forms and relying on web servers for processing the form information. A handful of leading edge developers were working to implement a more responsive interaction by taking advantage of client-side processing with ActionScript in Flash. One of the earliest examples of successful interactive applications was a hotel reservation system, which moved from a multi-page HTML form to a one-screen, highly interactive reservation interface that increased their online reservations by 89%.

Clearly, responsiveness matters as it creates a much more effective, engaging experience. However, in 2001 there was a lot to be desired in terms of performance, power of the scripting language, ease of debugging, and design constraints for applications within browsers.

We did a lot of brainstorming and talked extensively to developers at that time and decided to embark on a mission to enable this trend, naming the category "rich internet applications" (RIA). To better support RIAs, we aimed to create:

A tremendously faster virtual machine in Flash Player for ActionScript 3

A development framework called Flex, making it radically easier to build RIAs

An environment specifically to deliver rich internet applications to their full potential, code named "Apollo"

During the dot-com bust, we held onto the vision of enabling this future world of rich internet applications. We continued to invest in building out a range of technologies and prepared for the day that innovation on the web would ignite again. The days of innovation have now returned in full force and I am delighted to see rich internet applications coming into their own with Web 2.0. Developers are creating applications with a range of technologies and frameworks that tap into the distributed creativity of the internet -- taking advantage of HTML, Flash, Flex, Ajax, and balancing logic between the client and server.

The new virtual machine has been delivered now in Flash Player 9, enabling ActionScript 3 to run an order of magnitude faster and implement the most recent work on the ECMA standard for the language (JavaScript follows this same standard). This modern implementation has also now been released as open source with the Mozilla Foundation as the Tamarin project, enabling the Flash Player team to work with Mozilla engineers and others in the open source community to continue optimizing the virtual machine and keeping up with the most recent standards work. This core scripting engine will be incorporated over time in Firefox, bringing more consistency across scripting in HTML and Flash.

The development framework has also been delivered today as Flex, enabling rapid development through common patterns for interaction and data management, with the whole framework built in ActionScript 3. The Flex framework is available for free, and the framework source code is included so you can see exactly how it works. You can use any editor to write code using Flex, and a specific IDE is also available, called Flex Builder.

As we saw innovation on the web returning and were pursuing this vision, that's when we decided to unite efforts across Adobe and Macromedia. While Macromedia was driving rich Internet applications with Flash, Adobe was innovating in delivery of electronic documents, among other areas. We both saw over time that Macromedia would be adding electronic document capability to RIAs and that Adobe would add RIA capability around electronic documents. Rather than pursue those paths separately and duplicate efforts, we joined forces to deliver our vision for the next generation of documents and RIAs, bringing together the world's best technology for electronic documents and the world's best, most pervasive technology for RIAs. It's really a powerful combination of technology and teams.

After we announced the merger, we created a "clean room" team to plan for our next generation of software, drawing on everything we've learned to date as well as from the potential of bringing Flash, PDF and HTML together in the new Apollo environment for rich internet applications. The Apollo project is actually our third attempt at creating this new environment. The first two attempts were part of an experimental project called Central which was code named Mercury and then Gemini after the United States space program, and the current work code named Apollo. We learned a lot from those first two projects, and as I like to remind the team, Apollo is the one that actually went to the moon.

With Apollo, you can leverage existing web development skills (HTML, Flash, JavaScript, Ajax, Flex) to build and deploy RIAs to the desktop. Just like web publishing allowed anyone with basic HTML skills to create a website, Apollo will enable anyone with basic web development skills to create a desktop application. The HTML engine in Apollo is WebKit, which is open source and is also used Apple's Safari browser.

Apollo enables people to more easily maintain a connection with information in their web applications. Just like a desktop app, Apollo applications have an icon on the desktop, in the Windows start menu, or in the OS X dock. Also, when you're running a web application today, it's a separate world from your computer. You can't easily integrate local data with your web app. For example, you can't just drag and drop your local contacts onto a web-based mapping application to get directions to your friend's house. With Apollo applications you will be able to this kind of integration as it bridges the chasm between your computer and the Internet.

I believe Apollo represents the beginning of a new medium as the best of the web and the best of the desktop come together. These applications are fun to build and if you start early, you'll be able to deliver capabilities in your applications that others won't have yet -- especially in terms of increasing the presence of your application on the computer and bridging the web and the desktop. This is an alpha version of Apollo, and the Apollo team is looking forward to your feedback and wishes -- there are also mailing lists and forum discussion to reach other people working on Apollo or to report issues you find.

The Apollo team and I are very much looking forward to seeing what everyone creates, and to the next generation of applications ahead. We have an opportunity to keep pushing the boundaries of what's possible on the internet to make the experience more engaging and effective for people around the world.

19 Mar 07 12:50 PM