Kevin Lynch Archives

contact: contact

March 19, 2007

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

    Comments

    Savvas says:

    WOW..It seems that you filled the space in you blog Kevin.
    I still missing the Macromedia brand but in the past few months Adobe tastes so MM.
    Congratulations on the Adobe's new shiny face!
    Today was an amazing day.
    Chears to the future.

    Posted by: Savvas on 19 Mar 07 01:54 PM

    Pedro Carabeo-Nieva says:

    Kevin,

    You, Mike Downey, the whole flash/flex/apollo teams, and this whole RIA community are just incredible. Today is a defining moment for the web and if I dare say, for humanity in general. The release of Apollo is going to create a surge in RIAs, a better, more productive, and much more expressive web. Apollo is the dream that java never achieved. It's one small platform/runtime for man, one giant leap for mankind!

    P.S. Let's just get that flash/apollo runtime on more mobile phones and we'll be golden! :-)

    Posted by: Pedro Carabeo-Nieva on 19 Mar 07 02:04 PM

    me says:

    When can we plan on a Linux version of Apollo?

    Posted by: me on 19 Mar 07 05:32 PM

    German Bauer says:

    Great announcement, 2 comments:

    - where is Mobile in all of this announcement. I am surprised to hear that cross-platforms just means desktop, when smartphones are going to be used in much larger numbers then desktops ever will, right now the bar of entry is way too high. We need an Apollo Light.

    - The success of Apollo hinges not only on how easy it is to build applications with re-usable skills, but how easy it is to create truly great user experiences with the skills people have. (And by that I do not mean the number of skins that can be applied to an applicayion.)

    Posted by: German Bauer on 19 Mar 07 07:42 PM

    Skeptic says:

    So exactly what is the incentive of using Apollo versus plain vanila Web2.0?

    And versus a real desktop application?

    Posted by: Skeptic on 20 Mar 07 05:23 AM

    Jonathan Gibson says:

    How I Spent My Apollo Camp Vacation

    OK, I get it.
    I went to band-camp intrigued but skeptical and left feeling a real shift in the playing field at hand. Adobe buying Macromedia means tendrils reach into almost every home and office desktop in the world. Flash is like a magnificent worm now snaking it's way through the vast majority of the world's connected computers and Adobe is going to swallow the internet browser from the inside out.
    Brilliant stratagem. I salute you.

    Just as Apple "Black-Boxed" the Macintosh toolbox, Adobe is abstracting both browser and OS in a bid to win the web today and ever greater media landscapes of tomorrow. I usually don't get in the habit of cheering for the big-guy on the playground or the marketplace, but I do now. Making my html/css compatible with the variety of browsers is a huge time-suck and frustration-peaking process - most especially with IExplorer. To author just once is a real ray of hopeful light on a bloody battlefield at the bottom of Sisyphus Hill. My main concern is that the authoring be as clean and designer-oriented a process as possible {as opposed to nerdy} and with the ActionScript 3 looking ever-more verbose this is a worry.

    Caveat: As an old Director hand I have viewed the rise of Flash with annoyance. When Buzz Kettles first showed me a prerelease version over a decade ago I could see the value of interactive vector-based media... but I was underwhelmed by the severely limited scripting control: Flash initially struck me as something that should have been an export option for Director. I'll leave the awfulness of the Flash interface to other screeds - too easy a target. Anyway, Form and Function had some real accomplishments under our belt deploying Director technology and the notion of stepping backwards {remains} unappealing.
    So... here we are, a decade later Flash + Flex is technically about where Director was when Flash 1.0 appeared. Sure, the Flex and ActionScript3 information-engines are better tuned for our streaming world of the XXIst, but the coding tolerances more finicky. Flash compiling has always struck me as a backwards direction w/ActionScript 1+2 kinda-sorta half-baked and far too geeky for easy-entry or pleasurable development. Declaring variables is more work than in previous versions, for example. I'm a designer primarily, although I can sort my way through scripts and even code - but the win here is to make that go away and focus on the task at hand: making eBay flyers, Shopping Carts, Wanted Ads and myriad mundane commercial things the great unwashed do daily. Otherwise this effort should rightfully be dismissed as expensive coffee-talk thought bubbles. This should get easier and higher-level as time marches on and not more brittle and harder to master for the designer. Blame it on residual sour grapes, but whatever it's limits Lingo was forgiving and helped a fault-prone new technology keep it's best foot forward. I really think Adobe has the logic side down and they need to open up to the creative direction and be sure the UI is focused on the creative professional until easy development is polished smooth and not gearhead-centric. Certainly better than anything from a certain Northwest technology cartel.

    To me developing for Apollo means to switch platforms like swapping sun-glasses w/o a dropped packet or font substituted & miss-aligned layout. A refocus on the designer, focus & simplicity, ease of development is in order - or else you should just stick to the expensive corporate in-house model and the eager techno-preisthoods ready to invoice. With Apollo and the current momentum of Flex+Flash I can imagine a true author-once cross-platform web/RIA development system with an intrinsic graphical finesse that brings to mind high-touch glossy magazine aesthetics. Design & produce just once to deploy your services across the world from laptop to mobile phone without browser support hassles and platform agnostic in creation or playback.
    Heady stuff.

    If Adobe can just keep focused on the designer and not the geek, then Adobe scores a quick landslide victory before the other players can respond. You've got this year to hone your front end. So, I'm holding my breath and jumping off the cliff into these waters. I think the risk justified and upside enormous. I do feel naked booting without QuickTime, but I know it'll be a heckuva ride all the way down whatever temperature the water ends up. And it looks like I'll have some company.

    Viva, la revolucion!

    Posted by: Jonathan Gibson on 20 Mar 07 08:52 PM

    Jeremy Suriel says:

    Great post Kevin. A fitting introduction to the public release of apollo and the great applications to follow as a result of the innovation by the adobe development team. Apollo has further validated our decision to base our products on flash. Cross-platform desktop development using the same powerful, interactive, and ubiquitous platform we have become familiar with over the years...what more can a developer ask for...oh yeah, mobile devices... i'm sure this will soon follow...

    Posted by: Jeremy Suriel on 21 Mar 07 09:04 AM

    Jesse Ezell says:

    Since when was Central an "experimental" project? I thought it was just a failed one ;)

    Posted by: Jesse Ezell on 21 Mar 07 10:48 AM

    Mike says:

    Hey Kevin - great stuff, Apollo looks really promising, I've already knocked together some super basic apps that I'm proud of :-)

    One quick question - not seen it mentioned and it struck me as weird... I used one of the HTML objects, and just put adobe.com in to see it work... I then clicked a link on adobes site to install flash - thought it would be kind of funny seeing what it made of trying to install flash into essentially a browser inside of flash.
    Well then I found out it wouldn't install - so I went to a page containing flash and... nothing! So the question is - how to I get the html object to show flash movies in webpages?? I mean there must be a way right? I know it's bound to be me missing something...
    Cheers
    M.

    Posted by: Mike on 21 Mar 07 12:14 PM

    Flash Training Gal says:

    The first major release since the 2 companies merged, I'm excited to see the integration

    Posted by: Flash Training Gal on 23 Mar 07 11:29 AM

    User says:

    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

    Posted by: User on 24 Mar 07 10:23 AM

    Comments on this entry are now closed

    You can of course make comments in your own blog, and Trackback continues to be available to reference your post here.