Flash and Web 2.0

I have been following the discussions on Web 2.0 over the past couple of months, and have been intrigued with the attempts to come up with an agreed upon definition of what exactly Web 2.0 is. One of the interesting things has been watching individuals / groups jockey to define Web 2.0 in a way that explicitly includes their technologies, and implicitly excludes others.


Jonathon Boutelle highlights the attempt by some in the Ajax community to equate Ajax with Web 2.0. Indeed, if you look through the history of the Wikipedia entry on Web 2.0, you can see attempts to define Web 2.0 to include:

Unobtrusive Ajax Techniques

and to exclude

Non-standard browser plug-ins and enhancements are generally eschewed.

The neutrality of the entry is disputed, but it gives an example of how groups are trying to steer the direction of the discussion to benefit one technology over another (in this case Ajax over Flash). I saw similar attempts during Web 2.0 conversations at O’Reilly’s Foo camp a couple of weeks ago (although in those cases it seemed to be driven more by a lack of knowledge about Flash, verses an evangelism for Ajax).For the sake of this post, I am going to define Web 2.0 as “the web as a platform”. i.e. Web 1.0 (Today’s web) primarily consists of closed APIs and services whose use is defined by the creator. Web 2.0 consists of documented APIs and open services (HTML, RSS, REST, Web Services, etc…), whose use is determined by the users and / or third party developers.Jason Kottke has an excellent write up on his thoughts on Web 2.0 and what he terms the WebOS, which he defines as an “Operating System based on the web”. This describes the types of applications that will be built on top of Web 2.0 and how they will be constructed.As Kottke notes, one of the primary advantages of such a WebOS is that it is largely platform agnostic:

Aside from the browser and the Web server, applications will be written for the WebOS and won’t be specific to Windows, OS X, or Linux.

and

For application developers, the main advantage is that instead of writing two or more programs for multiple platforms (one for the Web, one for Windows, etc.), they can write one app that will run on any machine with the WebOS using the same code base.

This brings me back to the attempt to define Ajax as an integral part of Web 2.0. Ajax applications often appear to be cross browser / platform to the end user, but developers often have to do a significant amount of work to make those applications work cross-platform / browser. Indeed, the initial release of Google’s gmail did not include support for Safari on the Mac. Is a technology really cross-platform if you have to do a significant amount of extra work to make it that way? (that is not a rhetorical question).I do not mean to suggest that Ajax applications cannot be used to develop Web 2.0 applications, but I do believe that there can be significant disadvantages to doing so.It is this cross browser development complexity, along with the inherent limitations of developing applications based on a model originally designed for document centric display, that can and often does limit the robustness of browser based apps.Kottke seems to acknowledge this when he notes that WebOS clients may not be as robust as traditional desktop applications, but that they might be good enough:

There are also disadvantages to WebOS applications, not the least of which is that HTTP+JavaScript+XHTML+CSS+Flash is not as robust in providing functionality and user interaction as true desktop applications written in Cocoa or Visual Basic. But as Paul Graham points out, Web applications may be good enough.

Kottke seems to be resigned to a WebOS with applications that are just “good enough”. However, I disagree with his lumping Flash with the other technologies when it comes to how robust they are for these types of apps, as while Flash applications are not always as robust as desktop applications, in many cases they are, and in other areas are quickly closing the gap.Indeed, Flash is uniquely positioned as a client interface to Web 2.0 / WebOS applications. It is capable of providing a robust and rich application experience, while loading data across domains (essential to Web 2.0?) with true cross platform development and deployment capabilities.One of the primary issues in the past with Flash application development has been that is was missing a robust and consistent programming model, and has not had a developer centric IDE. This has made it difficult for developers to view Flash as an application development platform (Flash’s origins as an animation platform hasn’t helped either). However, the Flex framework (an XML based application framework) along with ActionScript (which, like JavaScript, is an ECMA based language) provides a complete programming model with a full component set (we are working to ensure that any developer who wants to leverage the Flex Framework will be able to). Furthermore, our work on Zorn (an IDE built on top of Eclipse), as well as current efforts in the Open Source community to bring Flash development to Eclipse, are removing the IDE limitations.Web 2.0 gets really interesting when one can build clients that composite not just multiple data sources, but multiple rich data types, and start to build applications that really leverage the web as a platform in a much richer way with things like streaming media, VOIP, messaging and real-time data.I think that the biggest secret on the web today is that Flash is a application platform with a virtual machine and a robust programming model and application development framework.This brings us back to the title of the post. While web 2.0 applications will not be limited to any single technology (including Flash), I think that the Flash Platform is uniquely suited to create next generation applications based on distributed APIs and effective user interfaces, all in a way that does not require end users to settle for a sub-optimal user experience.

15 Responses to Flash and Web 2.0

  1. Florian Krüsch says:

    The point is imho, that Web 2.0 is much more information-centric than Web 1.0.It’s all about metadata in the end.I imagine that in a few years, we’ll be using the same web-apps and viewing the same content from full fledged Desktops apps, in classic Web apps enhanced with AJAX or Flash, on mobile devices or Media Center PCs.It’s more about data accessibility and syndication than about presentation I guess.

  2. Igor Costa says:

    Great postOtherwise in my Own and personal view, I think AJAX and SWF, maybe will liderate this view on wb2, but also and extremilly also, can view with differents eyes.But basicly web2.0 is much more than this, it’s a world acess point technologies and standards than non-standard plu-in.Other future view that’s acomplished in some kind view today is the fact of built-in applications that communicate each others.

  3. Kenny Bunch says:

    Technology discussions aside. I am very excited with the penetration of the web, broadband, mobile, etc. It is something I envisioned when I was first introduced to the web, and now that its happening, it makes for extremely exciting times.It’s so obvious to see. What would people do without IM and email? A lot would freak out, because they are so connected, and it is such an integral part of their life. However, it didn’t even exist to them until recently. What things are right around the corner? It remains, to be seen, only speculated. One thing is for certain, the possibilites are growing by the day.I have been programming off and on since I was 8. Personally, I love flash coupled with the web. It has opened up a lot of possibilites to me. I wouldn’t use it for everything, but for the things it allows me to do, I’m in heaven.The mass penetration of variant technologies is exciting for developers and consumers. For one, I know I am excited ;).

  4. Michael Sica says:

    Hi Mike, great post. I agree with your points, and I think you hit the nail on the head with why HTML/JavaScript development is less than ideal.”Indeed, the initial release of Google’s gmail did not include support for Safari on the Mac.”If it took Google a little extra time, how long will it take most developers or companies with fewer resources? Google also has 2 different code bases for their Google Maps application. One for IE and one for … not IE.I’m working on starting my own ISV, and I choose the Flash runtime as my GUI platform. One of the top reasons was the single runtime to debug against. (I’m using OpenLaszlo as opposed to Flex or the Flash IDE, but the Flash runtime is what sold me.)You can read me whining up a storm on my blog about JavaScript development. 😉http://www.michaelsica.com/ataraxissoftware/2005/07/programming-language-openlaszlo-client.html

  5. Brad Neuberg says:

    Yes, Flash is a very cool technology; but some of the most interesting aspects of Flash that set it apart from Ajax, such as the native support for web cams and audio conferencing, are completely closed and depend on Macromedia-only server-side products, such as Flash Communication Server. I would love if Macromedia would open the RTMP protocol (Real Time Messaging Protocol) that is the heart of some of the most amazing Flash techniques that leave Ajax in the dark.Until that time, though, I don’t see enough differentiation between Flash and Ajax to recommend Flash to my clients.Further, Flex is cool, but very expensive and closed source.

  6. mike chambers says:
  7. James Young says:

    Great post, Mike. I read Kottke’s article a few days ago and thought about Central more than anything else. Doesn’t he mention something about a server running locally on the client computer that can communicate with a server over the ‘net (ala Google Desktop Search)?I know Central isn’t a web server. However, it does resemble (I think) Kottke’s requirements for a WebOS. Isn’t the Ajax v. Flash an RIA argument more than a WebOS argument?I think Macromedia is almost there but I think Central misses the mark just a bit. An environment so that Flash developers can montetize assets is a great idea but I don’t think it is in line with the Flash as a platform. I am still trying to figure out what Central should look like.

  8. Adam says:

    I’ll come at this from a different perspective.This all smacks of the PC v. Mac holy wars from days gone by. Neither approach (Ajax vs. Flash) are the end all, be all and there are very few situations development-wise where this black and white dichotomy will be necessary.Instead, both approaches should be used sparingly and where they add value. Each approach has its pros and cons and there isn’t a blanket statement that can be made for or against either.Lastly, your end-users that you’re developing for DO NOT care about what’s in Ajax, Flash, Flex, Laszlo, Atlas, etc…All they care about is whether or not the application you’re developing helps make their life easier than it was yesterday.Until the larger developer community understands that user needs drive the solution and that there is no one-size-fits-all approach to solutions, we will all waste precious time debating about whether or not Flash is better than Ajax, Macs are better than PCs, etc. instead of MAKING the applications that make a difference in the way we manage ourselves and our time.

  9. mike chambers says:

    >Until the larger developer community understands that user needs drive the solution and that there is no one-size-fits-all approach to solutions,This wasn’t about Flash vs Ajax, it was about a Web 2.0 that contains applications with the user experience that users want and expect.As I noted in my post, you can often do this with Ajax. But for a number of reasons, Flash is positioned well for these types of applications, both from the developer’s and end user’s stand.mike chambersmesh@macromedia.com

  10. Scott Barnes says:

    Well one thing has always baffled me about the Web 2.0 talks is that the core blame for the 2.0 concept being born, was lack of updates. In that the brainstrust for HTML seemed to have stopped or can’t decide on the next set of direction(s).So, folks like us feel the need and are compelled to jump forward and push our agendas onto the table.”I want AJAX, because Google showed us that JavaScript is still a viable solution and since it has a really cool ‘buzz’ word associated to it, its now legitimate” (wonder what would of happened if you tried the same approach 3-4 years ago? (Interesting how brand + technology can shape perceptions)”I want FLASH as its x-browser and x-platform independent, and its got lots of multimedia control along with heaps of other assets associated to it” – Yet, you still need at some point to anit-up the $$ in order to use it, that’s the missing part of the argument(s), its plugin yes, but it still costs to write, ‘AJAX’ doesn’t.So what are we doing, we are trading up from a stifled technology such as HTML 1.0 for a brand-focused approach such as Macromedia Flash (Adobe Flash??)I still to this day think that HTML needs to redefine itself to allow “behavior”. Look at products like FLEX and MXML, and while its owned by Macromedia, its still a nice example of how XML + Scripting can be used.Microsoft have clued in on this aswell, and by all appearances they want a slice of that WebOS world aswell.Point is, HTML should be built-on-top of in order to start waving Web 2.0 vs injecting percieved technologies such as AJAX and FLASH as the saviors. Redefine HTML in a way that both concepts can accept them as a foundation to interpret and render.I also thought we learned something about browser wars? ..in that, the future of the web must be a uniform approach in terms of its core principals not a brands interpretation of how it should be enhanced (we are still paying for Microsofts adhoc approach to DHTML)Web2.0 needs semantics and syntax upgrades. It needs to be mutated between languages like XML or ECMA, but something has to happen in terms of standardised approach to a language.Oh before folks start ramping and raving the AJAX is just that, Its not, its just a POC of what the real version should adhere to and it still needs to cherry pick concepts from FLASH.Funny thing of all though is that history has shown from companies like Google, Macromedia, Adobe and Microsoft: Money dictates the future standard(s). If you market it and push into folks faces long enough, it becomes a standard.AJAX is a prime example of that.

  11. Hi Mike,Excellent thoughts!, just take care of link to excellent write up on his thoughts on Web 2.0 which is opening with “link:excellent write up on his thoughts on Web 2.0” in a new browser window.May be its true…in a upcoming days some thing more like webos as far as google trying all things desktops, search, browser etc etc.

  12. potechi says:

    Hi Mike!That’s a great post, however, I think the problem macromedia need to solve how to implement reusability and weaving ad-hoc concerns on client-side against Flash/FLEX.make sense?

  13. Jessica says:

    Whats up with all the spam can yo uget rid of it please.

  14. Nicole says:

    Great post, really interesting. So we’ll move it to another technology and let Flash go?

  15. John says:

    I do not agree with your vision of Flash as next generation technology.