Kevin Lynch Archives

contact: contact

October 12, 2005

Flash is your friend in Web 2.0


Web 2.0 videoI recently presented a "high order bit" at the Web 2.0 conference about how Flash and HTML work together and made some announcements about building Flash applications in a way developers can relate to more easily.

Tim O'Reilly wrote a great overview of what he means by Web 2.0, which are essentially design patterns and business models for the next generation of software. The shorter term results are things like easier sharing of photos with your friends and family, finding the most interesting things to read, and getting new insights on information by combining data like rental listings with their locations on a map. Longer term, this "architecture of participation" could mean harnessing collective intelligence across the Internet to solve increasingly difficult problems around the world, as also envisioned by Doug Engelbart.

In terms of building applications for Web 2.0, I believe the key underlying theme is the separation of data and user interface through open data formats, RSS/Atom feeds, and programming interfaces made publicly available. This enables not only a revolution in machine to machine communication, as all the excitement about web services has been about, but also human to machine as we're seeing with remixing applications and new user interfaces on data.

There is clearly a resurgence in how HTML can be used to deliver application user interfaces and terrific progress has been made on that. In addition, Flash brings capabilities that HTML doesn't currently have, and they can be used together to great benefit -- in fact, Flash has already been architected to fit perfectly in the Web 2.0 model. For example, Adaptive Path has been working on a great new application called MeasureMap that helps people track traffic on their blogs and is being built with a combination of HTML and Flash on the client. Another is how Flickr is using both HTML and Flash, for example implementing the organizer and slideshow with Flash and the photo index with HTML. The language in Flash is ActionScript which is the same as JavaScript, both ECMA standard languages, and it's very simple to call between code in HTML and Flash, enabling smooth integration with a free open-source integration kit. This is not about Flash vs. HTML or Ajax. It's using Flash + HTML with the Ajax approach to build Web 2.0 applications (to be fully buzzword compliant).

There are many examples of applications built in Flash, though building them is not what a lot of people would call easy as the current Flash authoring tool and programming model were optimized for more creative uses such as animations. What we're working on now are a set of technologies to make building applications and components much easier and for the results to run much faster.

These technologies include the upcoming Flash Player 9 which has a new virtual machine that runs several times faster -- it has been in development for over two years and is aimed squarely at providing a high performance Web 2.0 client runtime with a just in time compiler, runtime error checking, support for E4X (which makes XML a first class data type in scripting so you can easily use XML in code) and compliance with the standard ECMA language definition. The second technology is the Flex Framework, a programming model that enables developers to use an XML based language to build apps much more intuitively along with integrated scripting. And third, a tool called Flex Builder that is being developed on the Eclipse open source framework, is designed for developers, combines code editing with visual layout of applications, and has a compiler built right in. For a demo of how quickly you'll be able to build applications with this, please check out the video where you can see a photo search app built in about five minutes.

A major advantage of using the Flash Player for Web 2.0 applications is consistent development across operating systems and browsers and a lot less overhead programming around differences and needing to debug and test on every configuration. The Flash Player has more reach than any browser or operating system, and is being distributed faster than any other technology I know of on the Internet today which means innovation on client technology can be deployed to over 80% of people on the Web in about a year and then reach 98% a little while later.

This transformation of Flash from purely an animation engine to a runtime for rich media and rich internet applications has been happening for several years now, though many people aren't yet aware of these capabilities. Some things I find many people don't realize about Flash include: an active open source community around Flash; support for more sophisticated local storage than what the browser provides along with more control for users; Google does in fact index Flash; two-way live audio/video communication is built in along with support for synchronized data transmission for collaborative apps; Flash supports accessible applications including integration with screen readers; it's actually the most widely distributed video player on the web; it supports sockets (which enable push of data from servers rather than the request-only model) in either XML or with the new client in any binary format.

Also, there is currently support for integration with backend infrastructure through web services or REST interfaces from the Flash Player today. The new Flash Player 9 has even stronger enterprise data connectivity including client support for Flex Enterprise Services which enables use of message queues, integration with JMS, remote procedure calls, and data synchronization. This enables not only simple applications like photo viewers, but also sophisticated business applications.

We're making this next generation available in early stages so we can collaborate with the community around it and make sure we're all building the right stuff. Alpha releases of Flash Player 9 and Flex Builder will be available for hacking Web 2.0 applications starting at the MAX developer conference on October 17 and posted at macromedia.com/go/web2.

12 Oct 05 09:52 AM

Comments

Kenny Bunch says:

Great write up Kevin. I'm really impressed of what's coming out of Macromedia these days. You all are really enabling people to do great things. Thank you, I'm looking forward to the future.

Posted by: Kenny Bunch on 12 Oct 05 11:34 AM

Chris Charlton says:

The video is great to watch. I'm excited about Flash Player 8.5, and Flex 2 in general, but my real enthusiasm will be finding ways to not keep viewers stuck in "my box" (website), and XML was always known to be the catalyst.

Posted by: Chris Charlton on 12 Oct 05 12:07 PM

Geoff says:

Don't forget that the new ExternalInterface class removes the need for the Javascript Integration Kit, and will give developers even more control over Flash movies embedded in HTML.

Posted by: Geoff on 12 Oct 05 07:05 PM

Dean Fragnito says:

I asked this question on Mike Chambers Blog but thought I would ask it here as well.

With repect to the web 2.0 demo. My question is does there exist cross domain limitations. It appears as though the flash client issued a cross domain http get. Or was there a server side component to this? Sorry I am new to flash so this is a newbie question.

Posted by: Dean Fragnito on 13 Oct 05 12:16 PM

Kevin Lynch says:

Cross-domain access is controllable for Flash clients by just placing a policy file on the web server that wants to allow access. There's a description of this at: http://livedocs.macromedia.com/flash/8/main/00001621.html

Posted by: Kevin Lynch on 13 Oct 05 12:49 PM

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.