Why Flash is doomed

In my previous post (“Why I haven’t installed a Flash player“), I tried to convince people why supporting Adobe Flash by installing a player was a bad idea. My hope was that efforts like mine would reduce the number of sites using Flash and eventually eliminate non-standard technologies like Flash from the web. Recent events made me realize why such efforts to get rid of Flash will pale in comparison to the natural phenomena that are already working together to seal Flash’s fate.

The demise of Flash will not come from any one place. Rather, a combination of factors will culminate in a perfect storm that will end Flash’s dominance. Here are the factors:

Dwindling user base

Those who have been following Flash and its widespread adoption may be surprised by my prediction. After all, Flash currently “reaches 99.0% of Internet viewers”, according to Adobe. As a developer, this should mean that virtually anyone who can access the Internet can access my website designed with Flash, right?

Carefully analyzing Adobe’s statistics shows this is not the case. By “Internet viewers”, Adobe actually means “Internet-enabled desktops”. As we are seeing, there are more and more devices that can access the Internet which are not “Internet-enabled desktops”. Anyone using an Apple iPhone, T-Mobile G1, BlackBerry Storm, or (soon) Palm Pre can access the Internet, but they are not considered in Adobe’s stats because those devices are not “Internet-enabled desktops”. However, with iPhone sales alone surpassing 13 million units, this segment of Internet-enabled cell phones represents a large percentage of total Internet users, which will only grow larger as Internet-enabled cell phones and data plans drop in price.

Slow-moving nature of proprietary software

If Flash is already so popular, won’t most cell phone makers add Flash to their Internet-enabled cell phones, keeping the percentage of Flash-capable Internet users high? The answer is: they can’t. Why not? Because they are unable to add Flash support themselves since Adobe keeps the Flash software proprietary (its inner workings are not open to outside developers) and they do not freely release the specifications that would allow someone to implement Flash (see “Why I haven’t installed a Flash player” for details). In contrast, the specifications for JavaScript and HTML are freely released and there are many open software implementations of both of them, making it very easy for a cell phone maker to add support for them.

Can’t Adobe just add support to the phones? Not easily. Most cell phone makers will only add software to their phones if it passes a certainly quality threshold and Flash often doesn’t meet that threshold by performing too slowly or by missing features. Since Flash is closed to outside developers, cell phone makers can’t fix Flash to make it work better so they can’t include it with their phones.

As a result, many cell phone makers are encouraging developers to use standard technologies such as HTML and JavaScript to create applications for their phones, as Palm is doing for Palm webOS, which will run on the Palm Pre. In addition, many developers are naturally migrating to standard web applications for cell phones to reduce their development cost since they can rely on phones supporting standard technologies like HTML and JavaScript.

Flash no longer needed for video

In addition to the plummeting percentage of machines on which Flash is installed, the need to use Flash for providing video is diminishing. HTML5 includes native support for video, which allows web sites to easily provide video to their users without Flash. Firefox 3.1 will support HTML5 video and Safari already supports it in version 3.1.

Animation, interactivity available in JavaScript

Furthermore, Flash is no longer required for the animation effects and interactivity it is often used for. The JavaScript implementations on all major browsers can perform these tasks just fine. In case you don’t believe me, check out 25 Amazing JavaScript Games.

What is a Flash developer to do?

Faced with the inevitability of Flash’s demise, what should a person who develops Flash web sites do? My first recommendation is to start learning web standards such as HTML and JavaScript, then convert all your Flash sites before Internet-enabled cell phone users start complaining that your Flash sites don’t work. Not only will this make your web sites more usable, it will also provide you with the skills needed to easily make cross-platform applications for Internet-enabled cell phones, reducing the time needed to support all the various cell phone operating systems out there.

Conclusion

Standard technologies like HTML and JavaScript have caught up with Flash at the same time as new types of Internet-enabled devices without Flash have flooded the marketplace. These two major factors and their sub-points above will combine to push Flash into obscurity. Flash developers should re-train themselves now to avoid a mad scramble as users increasingly demand content delivered using web standards.

Epilogue: Lessons for proprietary technologies

The demise of Flash should be a reminder to everyone who depends on proprietary technologies. These technologies will eventually fade into the distance as standards overtake them in ubiquity and usefulness. We have learned this time and again with the decline of technologies like RealVideo and the Solero Music Viewer. Some proprietary technologies (such as Windows) will last longer than others, but for every field a time will come when only standards remain. The question for software developers is: Will you be stuck on the proprietary technology when it fails or will you already be writing to standards?

46 Responses to “Why Flash is doomed”


  • I was surprised to see no OpenID login here 🙂

    Adobe is opening up the SWF/FLV runtime specs so that people can develop Flash runtime for their platforms. The reason iPhone doesn’t allow Flash is because of Steve’s hangups with Adobe. Look at this: http://www.openscreenproject.org/

    Don’t get me wrong – I’m a firm advocate of Flash free design (I say design, not development). But there are some places where Flash is very helpful – like FriendFeed’s real time feed (sockets, not yet supported by JS), or even some RIAs that work with the filesystem.

  • Ah, so that *was* an OpenID box. My bad 😉

  • The Open Screen Project is little more than publicity. It still doesn’t solve the problem: the spec is not open. I describe why in detail on Why I haven’t installed a Flash player; just search for “Open Screen Project”.

    I think the reason that Flash isn’t on the iPhone is deeper than Steve Jobs not liking Adobe. If the Flash spec were truly open (and more importantly, if the code were open), no one at Apple would have even had to talk with Adobe about supporting Flash; they could have just implemented it, optimized it to run at acceptable speeds (which apparently Adobe didn’t do well), and moved on. That’s the true power of standards: no one has to ask; implementing it is all you need.

    You’ll have to provide more convincing arguments for why Flash is a good idea. FriendFeed could have implemented the same thing with AJAX; they just chose not to. And I don’t see why an RIA needs Flash. The RIA platform should expose filesystem operations through a JavaScript API if that is desired.

  • Well, I can’t provide a more convincing argument because I’m not a Flash developer myself. I don’t even know what *all* the possibilities are.

    Flash from a design perspective is a big no-no. I’ve said it before, and I still believe in it. Flash for development, is required I believe, till browsers actually catch up with the needs of RIA. We can keep making Javascript more powerful, but there are people who’ve expressed their doubts as it being an optimum language to write web applications in (Steve (@singpolyma) is one of them, FYI).

    At the end of the day, being open on the web helps everybody. And honestly, I hope Flash designers find some more skills, so that we can begin to see proper uses of Flash from people who understand it – which might push someone to try and create an open version.

  • It sounds like we’re largely in agreement. The only place we might differ here is in our views on RIA.

    It may be that Internet standards are not ready for application development, but I believe the solution to that problem (if you see it as one) is to develop applications in the traditional style, using Qt or other toolkits instead of RIA platforms like AIR and Titanium until Internet standards mature. Alternatively, one could develop better JavaScript-accessible APIs to functionality that JavaScript doesn’t yet handle well in the RIA platforms themselves. Using Flash to overcome perceived limitations in JavaScript is not the solution.

    I’m not a big fan of RIA in general, but that’s mostly because of my background in programming (I am more accustomed to writing C/C++ than JavaScript or other high-level languages).

  • Hmmm – 15 million iPhones vs 1 Billion Flash Lite enabled phones. Dude you live in another world.

  • haha. Flash has supposedly been on its death bed since about 2002 I think. Yes, Flash’s demise is inevitable. Like any other technology, it will eventually be replaced by something better. Then again, Flash has shown an extraordinary ability to evolve with the times. What started out as a timeline based animation tool now has an object oriented application framework. If it keeps that up, it could have another decade or more of life left in it.

  • Dwindling User Base — Mobile apps have moved towards native apps over web apps. So not having mobile browsers that are Flash enabled is not very significant. Adobe has concentrated on providing Flash as an app platform on mobile devices, not as part of mobile browsers. Also your user base argument fails because you ignore the growing segment of users using Flash on the desktop via Air.

    Video — Yeah I’m sure HTML 5 will be ready. Any day now. Oh and I’m sure that once it is ready and implemented by all the popular browsers, then we’ll see users immediately go out and upgrade their browsers. That’s why IE 6 is still the #2 browser on the web, just behind IE 7.

    JS Animation — JS animations and graphics are far more limited than Flash. Even if something like canvas was adopted by the most popular browsers (IE 7 and IE 6, oops nevermind) then it is still primitive compared to Flash. For example, the 2008 election saw numerous web sites showing interactive maps displaying voting results for each states. Guess what technology was used for that.

  • Flash is the de-facto standard for all e-Learning, it’s not going anywhere. It’s also grown by leaps and bounds faster than HTML or Javascript in terms of features.

    FOSS can’t grow as fast, with as much focus and stability because no one stands to make a profit off of it. Unless there is financial incentive for a company or team of people to make a product successful, it won’t get the attention it needs.

  • “HTML5 includes native support for video, which allows web sites to easily provide video to their users without Flash. Firefox 3.1 will support HTML5 video and Safari already supports it in version 3.1.”

    And how long until the majority of the world upgrades to a version of IE that supports HTML5? Flash is going to be essential for delivering video for a very long time. And why would Microsoft rush to support video in HTML5 anyway unless they found a way to make it use Silverlight?

    Firefox and Safari combined still represent less than half of web users. IE isn’t going away any time soon unfortunately.

    “Most cell phone makers will only add software to their phones if it passes a certainly quality threshold and Flash often doesn’t meet that threshold by performing too slowly or by missing features.”

    This is true, but a few years ago people would have laughed if you told them the iPhone would exist and do what it does. No doubt that we aren’t very far from having smartphones + a re-engineered version of Flash/AIR that will allow Actionscript developers to create content for these and other devices. Adobe isn’t sleeping on this issue and fully intends to merge all Flash player development (read Flash Lite) into a single development cycle that will see it run across a variety of devices.

    Besides all this, every couple months Adobe is releasing more of their specifications. The latest was RTMP and FLV has been out for awhile.

    And at the end of the day, many of the most beautiful sites and interesting sites on the web are produced partially or entirely with Flash. Or on the more practical side, banner ads aren’t going away any time soon and Flash is the best option for creating and delivering them. I don’t see ad networks moving to serve javascript/html based ads anytime soon. Images or Swf’s that’s it.

    Don’t get me wrong. I’m all for open standards, but the reality of wide spread native browser support for all the things that Flash can do right now is a very distant one. And Adobe certainly isn’t going to stop pushing the limits of Flash while the browsers and HTML try and play catch up.

  • You just keep telling yourself Flash can’t do something or can’t do it the way you think it should. All this time other developers are making a living and building cool apps. Adobe has failed to paint the mobile picture the way they had dreamed but it doesn’t mean they still can’t turn it around. True, most new people connecting to the internet will do so via a phone and Adobe has to get in there somehow.

    I guess on the one hand I think you’re just way off. But, you make some great points… that are effectively moot because the momentum and future of Flash are still positive. You explain what would be nice (from your view) in a world that the “right thing” always prevails.

    Anyway, I like your style… see the first in my series of anti-technology (and many anti-Adobe) satire vids… this first one mike look like it could be from your twin brother:
    http://www.youtube.com/watch?v=lqvljJoUrxQ

  • “Standard technologies like HTML and JavaScript have caught up with Flash”

    Wow. Just wow. I can understand a lot of the criticism towards Flash, and I myself agree with a lot of it. But this quote means you either a) know nothing about the technology or b) is lying to make your point across.

    Whatever the case, that doesn’t help your post. In the same way as corporate-led FUD is what drives me away from developing with certain proprietary technologies, this kind of internet-nerd-FUD is what drives me away from certain development circles.

    It’s not like there any discussion to come out of this, anyway, since the kind of back-and-forth exchange we can expect given that starting point (specially with a lot of people that will come here to say “me too!” to your post) would be nothing more than a torrent of blind ideology.

    You know, you can turn your face away from the reason why RIAs exist and are here to stay, Flash included, but in the meantime, the rest of the world will continue to not care. Ludditism has come a long way, it seems, as those who see themselves as agents of progress play such large parts in refusing to acknowledge the flow of things. Personally, I believe agents of positive change are not the ones who ignore the path things are going by deceiving, but who understand why it’s going there and act to direct it towards the right path. It’s the only way the Open Future many of us devise will arrive.

    But you know, if all the criticism Flash has to endure anymore is that kind of blatant reality-bending drivel, Flash has a better future than it ever had. You can all hate on RIAs or specific platforms all you want. But as much as people have hated on CLIs in the past and denounced the advantages of it over GUIs, or many other examples, the world will just move on want it or not.

  • I’m not quite sure where your information for your prediction is coming from. With the Open Screen Project, Adobe has made the specs for SWF and FLV files available to the public. They also provide the device portability layer to manufacturers looking to add Flash support to their devices. Verizon Wireless has been delivering Flash enabled phones in the United States for the past 2 and a half years, and this past year released a Flash-based application that they call Dashboard, a rebranded version of Adobe’s FlashCast. Nokia Series 60 and some Series 40 phones support Flash Lite. Windows Mobile supports Flash Player 7. The Sony PSP and Playstation 3 both offer full versions of Flash Player, with the PS3 offering Flash Player 9, complete with video support. Adobe has already shown a public demo of Flash Player running on the Android OS, on a device. So, I believe your claims of device incompatibility are incorrect.

    Additionally, as of Flash Player 9, which is over 95% ubiquity, ActionScript, the ECMAScript-based language used by Flash and Flex developers, is faster, in most cases, than browser-native Javascript. That’s why Mozilla is currently working with Tamarin, which is the Flash Player ActionScript Virtual Machine (AVM), to try to improve Javascript execution in future versions of Mozilla products.

    Flash content is everywhere, and will continue to be. Advertising agencies will continue to use Flash to deliver rich experiences on the web. Developers are using Flash, Flex and AIR to deliver Rich Internet Applications in enterprise and consumer environments.

    Why, if Flash is so bad, are they doing this? Because the bane of many developers using HTML and AJAX is cross-browser testing. Even with the large strides that have been made in the last couple of years in AJAX frameworks and the newer, more standards compliant browsers that are available, cross-browser testing will never disappear completely until the industry standardizes not only the HTML and Javascript specs, but also the browser rendering engines.

    Flash content runs the same on every major operating system, Windows, Mac OS and Linux. You write once and run everywhere. And with AIR, Adobe’s desktop application runtime, you can leverage the same skill set to create cross-OS desktop applications. Which do you think has a shorter developer learning curve? ActionScript, or C/C++ and Qt? Which do you think allows for more rapid development? A declarative language, like MXML, combined with a high level scripting language, or Java and Swing?

    If Flash was going away, I don’t think companies like SAP, IBM, Dow Jones, Nasdaq, Viacom, EBay and many others would be investing in Flash and Flex technologies so heavily. I also don’t think that Microsoft would be taking the time to try to compete with Flash if it were losing relevance.

    Flash is here now, and improving continually. Do you know when HTML 5 support will be ubiquitous? Or CSS3? I’ve heard ~8 years, at least on the CSS3 front. In HTML 5 video, what video formats will be supported? From what I’ve read, it depends on the browser manufacturer (user agent) and operating system. A step backwards, in my opinion. Flash supports both FLV and F4V video, including H.264 encoded video, and the encoder for Flash Video is included with every copy of Flash, which is included in every version of Adobe’s Creative Suite package.

    I have a ton more that I could say, but I’ll close with this: You say that your background is primarily in C/C++, not in high level scripting languages, so your post may just be the result of a lack of experience with the languages, the runtime, or the platform as a whole. Hopefully, this information helps you to evaluate the current state of Flash from a more informed position.

  • “The Open Screen Project is little more than publicity. It still doesn’t solve the problem: the spec is not open.”

    You mean these specs?

    http://www.openscreenproject.org/about/publications.html

    On that page, I see links to specs for SWF, FLV/F4V, AMF, and the Mobile Content Delivery Protocol.

    Reading your other post now, I see that the “the Real Time Messaging Protocol (RTMP) and and Sorenson Spark video codec (the most widely-used Flash codec)… are not mentioned at all”. Adobe announced on January 20th that the RTMP spec will available in the first half of 2009. If I remember correctly, Adobe licenses the Spark codec from another company, so they don’t have the ability to legally open the spec for it. If you think Adobe can do better in this area, I encourage you to request open and royalty free video and audio codecs in Flash Player. They have a public bug/feature database for Flash Player. Make the request and encourage others to vote. With so much open already, it’s a waste to dismiss the entire thing because it isn’t 100% open.

    —-

    Let me add one more thing. I believe proprietary technology helps to push the open web forward, and for that reason, you should at least tolerate if you don’t like it rather than complain about it. We need things like Flash Player or Silverlight (among others) because they move faster than the abysmally slow W3C. Maybe Flash Player itself is doomed, but something new will pop up when it dies, and the features of this hypothetical new technology will help to inspire the next goals for the open web.

  • As have mentioned, Adobe is working on a full version of Flash Player 10 that can work on smartphones such as Android and Windows Mobile. Once an optimized version of the full Flash Player is available, the uptake with other smartphones could increase.

    However, what hasn’t been mentioned yet is at this years CES (Consumer Electronics Show) it was announced that Adobe has made deals with all sorts of companies via the Open Screen Project to get Flash on Blu-ray players, top-sets and even directly into televisions! There seems to be a move to make television and related devices internet enabled and Adobe is making sure that Flash Player is included.

    As for video, even if the video codex issue is sorted out and all the browsers start using say OGG video, you are still looking at 5 years or longer to get a big enough install base (over 80%) to actually use it. As pointed out above, IE 6 despite really showing it’s age still has a huge install base for mainstream websites. A lot of average users just don’t bother upgrading their web browser. Anyways, looking at a 5+ year cycle any codex used, will be so old by the time the install base is big enough that very few companies will want to use it. Imagine trying to use video technology from 2003 or earlier in a website today, instead of using HD video available via the h.264 codex now available in Flash. Web video needs to be in a plugin, Flash, Quicktime, Silverlight or whatever to allow it to move quickly and evolve faster than a browser environment would allow.

    With Adobe Premiere, you can create subtitles using voice recognition and I imagine that Adobe is working on doing that server side, which would really push video to a whole new level in making it searchable. Plus in Flash Player 10 Adobe added peer-to-peer capabilities for video. The technology continues to advance and a new version of Flash gets to large install base in months, not years that would result in browser-based video.

    That said, as a Flash developer who recently switched jobs this past November and December, Flash developers are in HUGE demand (or at least where I live in Toronto) despite the bad economic recession. Once again, it could be just a Toronto thing, but it seemed 2008 was a pretty big upswing in work for Flash and Flex developers and it looks like 2009 will also be a very busy year.

  • Lots of trolls 🙂 Some of you have interesting points. I believe those of you who think the Open Screen Project is sufficient should re-read the post, it covers it well enough.

    @tim and similar, you deserve a bit of a specific reply. The idea that Flash can do anything that standard DOMscripting can’t is almost absurd. It’s just FUD. Every time someone shows me something they think couldn’t have been done without flash, I show them how to do just that. Flash is *slightly smoother* at doing video (than standard non-HTML5 HTML… ie, HTML4), but only if you care about forcing people to use your player interface, which I personally think is a bad idea.

    Examples? rackedhosting.com, canonical.com, and the new whitehouse.gov just to name a few. Many people simply assume the animation / interactive features on the main pages of these sites are and must be flash. They’re not. Just clever DOMscripting.

    The biggest problem is with sites like http://serci.org/ that abuse flash to the point of doing standard navigation and data presentation with it. Not only is it ugly, but those without a Flash player cannot ever *use* the site.

    @PaulC Flash is the de-facto standard for many things because of ignorant or lavy web designers. My university uses flash for *slideshows* for crying out loud (can anyone say S5?). Also, while there are arguments to make against Flash from a Free Software point of view, and think this post and some it references make a very good case on solely the basis of technological dismerit. Open Standards on the web aren’t OSS, Free Software, or FLOSS… they’re *specs*. For more on that see http://singpolyma.net/2009/01/beasts-of-the-standards-world/

  • Thanks for your comments, everyone. I will get back to them as soon as I can, which might not be until Monday because I’ll be away until then.

  • Michael wrote:

    Dwindling User Base — Mobile apps have moved towards native apps over web apps. So not having mobile browsers that are Flash enabled is not very significant. Adobe has concentrated on providing Flash as an app platform on mobile devices, not as part of mobile browsers. Also your user base argument fails because you ignore the growing segment of users using Flash on the desktop via Air.

    It seems we agree that Flash should no longer be used on the web. As for Flash in user apps, these are ultimately doomed to fail as Adobe cannot move Flash quickly enough to new architectures and operating systems, which are becoming increasingly important as new smartphones are released. Open standards will always win there because phone makers don’t need Adobe’s permission to use them.

    Video — Yeah I’m sure HTML 5 will be ready. Any day now. Oh and I’m sure that once it is ready and implemented by all the popular browsers, then we’ll see users immediately go out and upgrade their browsers. That’s why IE 6 is still the #2 browser on the web, just behind IE 7.

    As I pointed out, the video element has already been implemented by all major browsers that aren’t IE so it is not an issue of HTML5 being ready. The primary issue is the prevalence of Internet Explorer, which is slow to support new standards, as you pointed out. Like Flash, IE’s user base is dwindling so this will become less and less of an issue as time progresses.

    JS Animation — JS animations and graphics are far more limited than Flash. Even if something like canvas was adopted by the most popular browsers (IE 7 and IE 6, oops nevermind) then it is still primitive compared to Flash. For example, the 2008 election saw numerous web sites showing interactive maps displaying voting results for each states. Guess what technology was used for that.

    JavaScript is perfectly capable of showing interactive maps. See http://www.rackedhosting.com/ for an example of something similar. Why people use Flash when they could increase their readership (including iPhone users) by using open standards is beyond me. Again, as IE’s user base fades, there will be fewer and fewer reasons to use a Flash kludge over open standards.

  • PaulC wrote:

    Flash is the de-facto standard for all e-Learning, it’s not going anywhere. It’s also grown by leaps and bounds faster than HTML or Javascript in terms of features.

    Standards may have lagged in the past, but there is no reason not to use them these days. It is especially unfortunate that people have chosen to use Flash for educational materials (where it should be used least) because it makes the materials inaccessible to so many people. As an example, educational materials made with Flash are not compatible with the XO laptop because the One Laptop per Child foundation chose to use exclusively standard technology. For more on this decision, see http://wiki.laptop.org/go/OLPC_on_free/open_source_software.

    FOSS can’t grow as fast, with as much focus and stability because no one stands to make a profit off of it. Unless there is financial incentive for a company or team of people to make a product successful, it won’t get the attention it needs.

    There are plenty of ways to make a profit off FOSS. Please do not equate FOSS with not making money. Read “How do companies make money using open source?” at http://www.fosslc.org/drupal/node/131 to learn more.

  • tim wrote:

    You know, you can turn your face away from the reason why RIAs exist and are here to stay, Flash included, but in the meantime, the rest of the world will continue to not care. Ludditism has come a long way, it seems, as those who see themselves as agents of progress play such large parts in refusing to acknowledge the flow of things. Personally, I believe agents of positive change are not the ones who ignore the path things are going by deceiving, but who understand why it’s going there and act to direct it towards the right path. It’s the only way the Open Future many of us devise will arrive.

    I am not against technological change in general. I’m against harmful technological change. The dominance of Flash puts too much power in the hands of Adobe, making it difficult for people to innovate without Adobe’s permission. Apple was bit by this with the iPhone’s launch, but fortunately for them the Apple brand is compelling enough to overcome the consumer dissatisfaction caused by being unable to view some web sites. For a newcomer without an established brand using a new architecture (like ARM) or operating system, having Adobe’s permission and cooperation to bundle a Flash player is the difference between a successful business and one that fades into obscurity because people can’t access the content they want. No company should have such control. The widespread use of Flash on the web is killing useful innovation.

    As people start understanding this, open standards will become the norm and anyone will be able to freely enter the computer hardware or operating system market without anyone’s permission, only technical expertise. Only when this happens will we see true technological innovation.

  • Zach Stepek wrote:

    I’m not quite sure where your information for your prediction is coming from. With the Open Screen Project, Adobe has made the specs for SWF and FLV files available to the public.

    Some of the specs needed to play SWF and FLV files are available, but not all. Namely, the specs for Sorenson and RTMPE are unavailable and there are no plans to make them available. This makes it impossible to implement a fully-compatible player without a significant amount of reverse engineering work. This is why manufacturers choose to use open standards: no reverse engineering or permission is required.

    They also provide the device portability layer to manufacturers looking to add Flash support to their devices. Verizon Wireless has been delivering Flash enabled phones in the United States for the past 2 and a half years, and this past year released a Flash-based application that they call Dashboard, a rebranded version of Adobe’s FlashCast. Nokia Series 60 and some Series 40 phones support Flash Lite. Windows Mobile supports Flash Player 7. The Sony PSP and Playstation 3 both offer full versions of Flash Player, with the PS3 offering Flash Player 9, complete with video support. Adobe has already shown a public demo of Flash Player running on the Android OS, on a device. So, I believe your claims of device incompatibility are incorrect.

    The issue for Adobe is that new device incompatibilities are constantly appearing as new devices are released. Hardware and operating system vendors are finding it much more productive to develop to open standards instead of trying to convince Adobe that their product is worth Adobe’s time.

    Additionally, as of Flash Player 9, which is over 95% ubiquity, ActionScript, the ECMAScript-based language used by Flash and Flex developers, is faster, in most cases, than browser-native Javascript. That’s why Mozilla is currently working with Tamarin, which is the Flash Player ActionScript Virtual Machine (AVM), to try to improve Javascript execution in future versions of Mozilla products.

    The JavaScript/ECMAScript implementations in Gecko, WebKit, and Chrome have all been recently re-engineered to run faster. I don’t expect Flash will have an advantage for long.

    Flash content is everywhere, and will continue to be. Advertising agencies will continue to use Flash to deliver rich experiences on the web. Developers are using Flash, Flex and AIR to deliver Rich Internet Applications in enterprise and consumer environments.

    Why, if Flash is so bad, are they doing this? Because the bane of many developers using HTML and AJAX is cross-browser testing. Even with the large strides that have been made in the last couple of years in AJAX frameworks and the newer, more standards compliant browsers that are available, cross-browser testing will never disappear completely until the industry standardizes not only the HTML and Javascript specs, but also the browser rendering engines.

    Flash content runs the same on every major operating system, Windows, Mac OS and Linux. You write once and run everywhere. And with AIR, Adobe’s desktop application runtime, you can leverage the same skill set to create cross-OS desktop applications.

    The “write once and run everywhere” behavior exists not because Flash is a standard (it isn’t), but because everyone uses the same Flash player implementation. This is very dangerous because applications are not written to work with the Flash specification, but rather to work with the specific Flash player implementation that Adobe provides. For a new Flash implementation to be perceived as “compliant”, it must implement not only the Flash spec, but also the exact behavior that Adobe’s Flash player has, which may deviate from the spec.

    If by “standardizing” browser rendering engines you mean that we should all switch to Gecko or we should all switch to WebKit, I completely disagree. If that were to happen, web developers would inevitably start to rely on non-standard features outside of any spec and it would be very difficult to make a new implementation that is compatible with web sites using these features. We should have learned our lesson from the problems caused by non-standard elements like bgsound and embed.

    Testing one’s design on multiple implementations is an important part of content development. It ensures that your design conforms to the spec rather than merely a single implementation of the spec. Just as C programmers should test their apps with multiple C compilers, web developers should test their content with multiple browsers.

    Which do you think has a shorter developer learning curve? ActionScript, or C/C++ and Qt? Which do you think allows for more rapid development? A declarative language, like MXML, combined with a high level scripting language, or Java and Swing?

    If you can develop faster with Flash, good for you. But if people can’t access your content, then why develop in Flash?

    If Flash was going away, I don’t think companies like SAP, IBM, Dow Jones, Nasdaq, Viacom, EBay and many others would be investing in Flash and Flex technologies so heavily. I also don’t think that Microsoft would be taking the time to try to compete with Flash if it were losing relevance.

    You’ll have to provide some references for where those companies are using Flash. As for Microsoft, they’ve never cared about standards; they’d much rather compete with a proprietary silo by creating their own proprietary silo.

    Flash is here now, and improving continually. Do you know when HTML 5 support will be ubiquitous? Or CSS3? I’ve heard ~8 years, at least on the CSS3 front. In HTML 5 video, what video formats will be supported? From what I’ve read, it depends on the browser manufacturer (user agent) and operating system. A step backwards, in my opinion. Flash supports both FLV and F4V video, including H.264 encoded video, and the encoder for Flash Video is included with every copy of Flash, which is included in every version of Adobe’s Creative Suite package.

    Regarding IE’s lagging standards support, see my previous posts. With respect to video codecs, see my post on codecs at http://ossguy.com/?p=233, specifically the “Business motives” section. All Firefox users will have Theora/Vorbis support but it will take a while before Microsoft and Apple adopt royalty-free codecs.

    I have a ton more that I could say, but I’ll close with this: You say that your background is primarily in C/C++, not in high level scripting languages, so your post may just be the result of a lack of experience with the languages, the runtime, or the platform as a whole. Hopefully, this information helps you to evaluate the current state of Flash from a more informed position.

    While I don’t have a lot of experience developing with Flash, what I know of the Flash ecosystem is enough to see where it’s headed. The current state of Flash (lack of a standard and only one implementation) is very reminiscent of Windows and the Win32 API. The Wine people have tried for many years to achieve bug-compatibility with Win32, but there are too many oddities in Windows’ implementation to make it work right.

    I fear that all Flash content will be locked away and inaccessible because the Flash player cannot be migrated to new architectures. I fear the harm that the current ecosystem has on hardware and operating system innovation. The faster we can migrate toward standards that will make content accessible for everyone on all platforms, the better.

  • Josh Tynjala wrote:

    Reading your other post now, I see that the “the Real Time Messaging Protocol (RTMP) and and Sorenson Spark video codec (the most widely-used Flash codec)… are not mentioned at all”. Adobe announced on January 20th that the RTMP spec will available in the first half of 2009. If I remember correctly, Adobe licenses the Spark codec from another company, so they don’t have the ability to legally open the spec for it. If you think Adobe can do better in this area, I encourage you to request open and royalty free video and audio codecs in Flash Player. They have a public bug/feature database for Flash Player. Make the request and encourage others to vote. With so much open already, it’s a waste to dismiss the entire thing because it isn’t 100% open.

    While it is close to being open, I don’t think the Flash spec will ever be truly open because Adobe has chosen to cave to big media through features like RTMPE, a form of DRM. I doubt we’ll ever see the spec for RTMPE because its “security” relies on obscurity, which is of course not secure at all.

    Also, as can be seen in the comments, Adobe relies on the current system, where everyone uses a single implementation and developers can “write once and run everywhere”, as a selling point. If there were to be multiple independent implementations (as true standards should have), people would have to start testing on each implementation, which would reduce the appeal of the platform.

    As I mentioned elsewhere, Adobe should have chosen not to use the Sorenson codec if they were not allowed to release the spec. Doing otherwise shows that they are not committed to open specifications.

    Instead of waiting for Flash to become standard, developers should start moving to existing standards like JavaScript and HTML right now.

  • Josh Tynjala wrote:

    Let me add one more thing. I believe proprietary technology helps to push the open web forward, and for that reason, you should at least tolerate if you don’t like it rather than complain about it. We need things like Flash Player or Silverlight (among others) because they move faster than the abysmally slow W3C. Maybe Flash Player itself is doomed, but something new will pop up when it dies, and the features of this hypothetical new technology will help to inspire the next goals for the open web.

    I agree with your point to some extent. The problem I have is that reckless use of proprietary platforms causes significant collateral damage. Wonderful content that people create on these platforms vanishes into obscurity when no one can read it anymore. New hardware and operating system ideas are squashed before they’re even implemented. These are the reasons I don’t like using proprietary platforms. If you must make something that isn’t standard, at least make it FLOSS so that others can port it to new architectures.

    I think the work of the WHATWG shows that relatively quick progress can be made on web standards. We don’t need the W3C to push things forward at a glacial pace.

  • In my above comments, I tried to reply to the key ideas in all of the original posters’ comments. Sometimes I didn’t directly respond to someone because I felt their comments were already well-covered by other replies I had made. If you feel I didn’t address a specific point in your comment, let me know and I’ll address it.

  • userFriendly has some excellent commentary on why Flash is an inadequate vehicle for standard, cross-platform content:

    http://ars.userfriendly.org/cartoons/?id=20090208&mode=classic

    Yes, Flash can do everything RIAs need. So can standards-based multi-media implementations.

    Yes, Flash is a rapid development platform. But that doesn’t mean standards-based RIA platforms can’t be.

    Yes, Flash has deep market penetration. But that’s only marketing, not excellence. Open standards bodies will never have the marketing clout of Adobe. But should the ability of a large corporation to buy lunch for your CEO determine the technological direction of your project?

    –Bob.

  • This is just too funny.

  • singpolyma: “@tim and similar, you deserve a bit of a specific reply. The idea that Flash can do anything that standard DOMscripting can’t is almost absurd. It’s just FUD.”

    It’s not FUD or absurd, but the truth when you look at the feature set of what Flash Player 10 is currently capable of, compared to what web developers will eventually be able to do in HTML5. The capabilities of HTML5 is bringing the browser closer to the capabilities of Flash Player 5, but a lot has happened in since then in Flash Player releases. Just take a look at some of the things capable in Flash Player 10:
    – Native 3D, not to mention JavaScript is no where close to being able to handle 3D engines like Papervision3D or Away3D
    – Dynamic sound generation
    – Peer-to-peer video, audio and data
    – The new text engine in Flash Player 10 gives control over text on the level of desktop publishing (see http://labs.adobe.com/technologies/textlayout/ for examples)
    – Multithreading bitmap shaders (Adobe’s Pixel Bender)

    Then just go backyards for the feature list in Flash Player versions to see all sorts of stuff, that browser vendors or the W3C haven’t even begun talking about adding to browsers yet.

  • Ossguy: “As for Flash in user apps, these are ultimately doomed to fail as Adobe cannot move Flash quickly enough to new architectures and operating systems, which are becoming increasingly important as new smartphones are released. Open standards will always win there because phone makers don’t need Adobe’s permission to use them.”

    I definitely agree that the future of Flash is depends on Adobe getting the Flash Player on new devices. You mention that open standards will always “win” because they don’t need Adobe’s permission. Yet any smartphones without Flash, will be missing a feature that a competitor might have, so most will want Flash, while Adobe wants Flash on any and every device. Adobe is not acting as a gatekeeper, but welcoming any company to join the Open Screen Project to include Flash on their device. Today it was announced that now Palm Pre is joining Open Screen Project, so the full Flash Player 10 will be on Palm Pre, Android, Windows Mobile and Nokia’s Symbian. This is the result of Adobe working with ARM to optimize the Flash Player for ARM chips used in most smart phones.

    Also note that while as a whole the Flash Player remains closed sourced, the ActionScript Virtual Machine, that runs the Flash Player is open source. According to this interview ( http://uiresourcecenter.com/rich-internet-applications/articles/inside-the-open-screen-project.html?s=2_1 ) with Adobe’s Anup Murarka, ARM, Intel, and Qualcomm have been working on the code base to optimize Flash for current and future processors. So it’s not like other companies are completely locked out of the code base in order to get Flash to work on new architectures.

    Also note that Adobe has been finally alpha-testing a 64-bit version of the Flash Player, first on Linux before Windows and Mac. Although when the 64-bit version is ready it will be released on all OS’s at once.

    It’s this combined with Adobe’s early attempts to get Flash Player on new internet enabled televisions, blu-ray players and top-sets (with deals so far announced with Intel, Broadcom and Sigma Designs) that it looks like Adobe may succeed in keeping Flash Player on a wide range of devices.

    Ossguy: “The JavaScript/ECMAScript implementations in Gecko, WebKit, and Chrome have all been recently re-engineered to run faster. I don’t expect Flash will have an advantage for long.” Yet, Flash Player has seen a speed boost with each version. Also the Flash Player has seen a number of speed increases thanks to the evolution of ActionScript as a language, which hasn’t happened to JavaScript. A simple example is including typed variables, allowing the compiler to assign less memory to variables. JavaScript should have taken a big step forward matching ActionScript with ECMAScript 4, which was supposed to have been finished last year. Unfortunately, manage to delay that and push forward their spec of ECMAScript 3.1, delaying the evolution of JavaScript as a language. First there needs to be a consensus on ECMAScript 3.1 before moving forward to ECMAScript “Harmony”, which is a watered down version of 4 that will be compatible with Microsoft’s 3.1 spec. There’s a lot more to the story than that, but unfortunately that’s the flip-side to being an open standard, a company like Microsoft has enough weight behind them thanks to their browser share that they can slow down what was almost decade’s worth of work on EMCAScript 4.

    Anyways, I’m getting a bit side tracked from the main point which I addressed above. There are a number of other points that I disagree with (like the video tag or Theora video ever getting anywhere without support on IE), but the main point is that from announcements made so far it looks like Adobe will be successful getting the Flash Player on a wide range of devices.

  • Hilarious! The revolution will not be televised apparently. Javascript animations have a looooong way to go to catch up to something that’s had a 15 year head start in vector animation.

    Don’t count on this coup too soon kiddies. Better reinstall your flash players. ;P

    http://www.jimcarrey.com/

  • I think there is an important point that has not been mentioned yet(at least I dont think so). The time to deploy a RIA or a desktop app is greatly reduced using Flash. Time is money for businesses, the faster the application is out, the faster and more money they will make. This is why business will continue to chose Flash to create their next RIA. I agree though that Flash based websites need to go, but RIAs have much more complex user interactions due to the requirements created by the customers.

  • If flash gets hardware rendering support it will weather the mobile storm. It will also keep being a go to technology for video and games on the web. Eventhough processors are getting faster and harware rendering might not be needed in the long run.

    Currently mobile(where native is required until we at least have 2GHz devices with 1Gb RAM+ and a decent video memory) is forcing that hand. Adobe has to be careful about losing valuable developers during this lull if they hope to get through it.

    In 2-3 years this may not be needed but now it is. Most if not all the complaints and issues with Flash on mobile are because of software rendering and vector graphics tasking the processor.

    Flash will not disappear but this is a danger zone and mobile/iphone/ipod touches are doing some damage to the developer base and highlighting Flash’s shortcomings. Hopefully Adobe can move fast on this.

  • I agree. Just use google web toolkit! You can write your ajax apps in java, and automatically cross compile them to javascript with significant performance enhancements!

    And you can plug into app engine too. The google eclipse plugin is great for installing both and end to end javascript to servlet debugging: http://code.google.com/eclipse/

  • I wholey disagree, and I am an ex Flash developer who has been xhtml, css and js for the past 4~ years. Flash has its place… it was never supposed to be used to render full websites; progressive enhancement for doing fully immersive, interactive, (currently) desktop internet applications is just fine for flash.

    It was never supposed to be used for video either.

    And watch it come to mobile, just because it hasn’t yet doesn’t mean to say it never will… and shit, what’s the alternative silverlight?!

  • Well i agree on the trend that seems to be. but today, it’s not true yet.
    As developer i’m facing the following: Should i lower the quality of my work and invest in future promissing javascript or invest in flex for best product today with risk of changing the technology sooner than i wish.

    No matter how nice are framework like extjs, the ease of arraycollection and the 2 ways synchronisation between the data and the datagrid for example, it’s still to be invented in javascript…

    if you link that to the “release early” and “dont include tomorrow’s problems in today’s work” motos of agile development, i still see some good days for actionscript…

  • Flash’s demise can’t happen fast enough. It is a terrible thing from the user side of the spectrum. Note to web devs, if you make a flash only website, I will not bother with your website. It is just not worth my time to endure your crappy arrogant attitude in making a website in flash only. Not only that but given the fact that 99.99% of the flash out there is simply for advertising delivery makes it a terrible system right from the start.

  • Imagine being an indie game developer trying to make his/her bread by writing games with javascript. Javascript is great, but really, using javascript in its current state in order to make games will require you to reinvent so many wheels that Actionscript already provides. While javascript is still pretty limiting, when it comes to what games you can make with it, I’m just glad that Actionscript is there to allow indie developers’ games to reach as many users as it can. Like my friend says, “shit dies, that doesn’t mean you don’t install it while its still alive”.

  • Thanks for this blog post. I’ve always hated Flash n fact one of the reasons I quit MySpace is their insistience on making me upgrade my Flash player every 6 months. Never understood the need for that. I also never understood why Adobe never shared the same amount of criticism as Microsoft when it came to proprietary standards

  • I think Flash is a good tool for the design community to inspire and make interactive websites out of common. We should use flash for multimedia presentations and websites that expands the actual limitations of html and javascript.

    Today We can use Flash and Silverlight to make rich internet Applications too, so I don’t agree with your post. With Flash CS5 We will develop applications for iPhone, and Adobe knows well how to increase their sharing market.

    http://twitter.com/David_Vera

  • Sadly, Flash is not going away anytime soon
    All the reasons provided here fall into what I’d call : Lame.
    Companies would never stop fixing and developing new products. Of course, I agree this are most of the current problems but to say this is the future it’s far from it.
    Technology is the art to bring options and easiest ways to develop our projects so at the end what is left to judge is creativity and smart choices rather than effort for dealing with “difficult tasks”.

  • Hi Denver, why do you think this post drew more comments on its one-year anniversary? I think I came here through Hacker News. Do you know how it got perceived as Jan2010? (I’m curious about online social-effects, the role of belief, etc.)

    tx, jd/adobe

  • By far, the most common referrer for this page since yesterday has been http://news.ycombinator.com/ (which seems to be the same as http://hackerne.ws/ ). I’ve received over 5400 hits on this page since the wave of traffic started around 4:40pm Pacific Time yesterday (about 26 hours ago), presumably when the page was posted there, as suggested by the referrers. On average, I get less than 10 hits a day on this page.

    I have no idea why Hacker News decided to pick up this page yesterday. I see nothing particularly interesting in my logs aside from a GET from a Google App Engine user about 20 seconds after the first user hit this page from http://news.ycombinator.com/newest (I seldom have GETs from Google App Engine for this page). This could have been in response to the post on Hacker News or my web server could have mixed up the timestamps and it was actually Hacker News crawling the page to re-post it. If you know what might have happened here, I’d love to know.

    It has certainly sparked a lot of discussion. Here are some of the major forums I’ve noticed, aside from the comments on this page:

    http://news.ycombinator.com/item?id=1076691 (42 comments)
    http://www.ubervu.com/conversations/ossguy.com/%3Fp%3D226 (33 mentions on Twitter)

    I’m not sure what’s causing this, but I certainly don’t mind the traffic and I’m happy to see it’s prompted a lot of people to think about and discuss the topic.

  • Thanks for the word. I wonder what’ll happen next January 21…. 😉

    jd

  • My dream is to make flash games… I’ve dreamt about becoming a game creator since I was 11 years old. I’ll be 21 this year and I’m going to a university soon and I’m going to finish a BS degree in Computer Science. I’m a flash Actionscript 3 programmer and my passion and dream is to create fun interactive flash games, and the job opportunities for AS3 programmers are only rising. THERE’S NOTHING like programming flash games. Since it’s so easy to publish your games. I’ve also always been an apple fan, and I’m using an 8core mac pro right now.

    BUT IMMORAL PEOPLE LIKE THOSE AT APPLE AND YOU ARE THE ONES THAT WANT TO MAKE AS3 PROGRAMMERS ALL OVER THE WORLD UNEMPLOYED!!!!! THANKS FOR TRYING YOUR BEST TO MAKE ME UNEMPLOYED… This is a personal attack against me and all AS3 game programmers. Good Job!

  • Rubbish. Absolute bollocks. Games written in Javascript run at half the framerate and double the processing load. The code is twice as long and completely ugly. Decent games cannot be written in JS. The canvas is far from being more than a decent 2d renderer, let alone a solid or stable way to display complex animation. Put aside the fact that it will be years before HTML5 is hammered out to the satisfaction of both Microsoft and its competitors; this is one case where a somewhat proprietary standard is simply better. Moreover, it’s going to be on every Android and Palm phone in the next month or two; Apple will be the only one left out if they refuse to adopt the plugin.

    Finally, it’s worth saying that the guy posting before me, who loves to code in Flash, reminds me of myself about 10 years ago and he is absolutely right to have come to the conclusion that AS3 is far and away the best way to write code that will run in a web browser, and will be for years. Javascript doesn’t even support normal CLASSES. Give me a good reason why we should all go back to altering function prototypes and loose dynamic typing and no display list and no event bubbling and this freaking procedural junk you kinds of guys are constantly trying to sell. If Adobe Flash dies out as such, rest assured, a very-AS3-like language utilizing the same libraries will be the web standard a few years from now; whether it’s HaXe + display libs or a port of the AVM2 directly into Javascript/canvas; the idea that a byzantine hell of a DOM and an obsolete scripting subset of java are the wave of the future of online gaming is wishful thinking, if you’re a javascript developer who never took the time to learn AS3 or ECMA4.

  • As a college professor who teaches Flash and focuses on ActionScript 3.0 (which is a bit daunting for my design students), I would like to post the question: If Flash is doomed, what should I teach in my New Media course (I know it is no longer “new”, but we are, for the time being, stuck with the title)? I attended an advanced Flash training in Sand Diego this summer and our instructor makes his living developing web sites in Flash for large corporate clients. He also incorporates Java, XTML, HTML, PHP, and other languages to make his sites very smooth. Any ideas?

  • I’d make a point here but I think it’s been well covered in the above posts. A lot of things have changed since you wrote the article, namely Android 2.2 with full Flash 10.1 support. The iPhone is a nice bit of kit but it’s rapidly loosing ground to Android phones. HTML5 is still no where near… …anything. The bottom line for me is Flash very much is still around since you wrote your article and beginning to thrive on Android mobile internet devices so I guess you were wrong.

Leave a Reply to Keith Peters