What's Really the Deal with HTML5 and Adobe Flash?

What’s Really the Deal With HTML5 and Flash?

HTML5 (or, as it’s more commonly known ‘HTML’) is a hot-subject these days — in large part because of the ways in which it is seen as supplanting Adobe’s Flash technology as a way to deliver rich experiences to connected devices.

What's Really the Deal with HTML5 and Adobe Flash?I’ve been trying to avoid stepping in the numerous potential pitfalls, with which this subject is rife, which is why I have largely avoided posting on this topic. But, after opening a small can of worms with this post two weeks ago, I feel that it is important to provide some more detail and clarification around this issue — especially as I’ve really come to appreciate the amount and degree of misinformation in the marketplace that is fueling ill-considered technical decisions.

It can also be challenging to figure out how to approach a discussion of this topic — even on a broad, generalized level. But let’s give this a whirl.

How I Met Flash

First, for some disclosure, I’m a big fan of Adobe’s Flash technology, and have been for quite some time. So, of course, you should take that into account when reading what follows.

Macromedia Flash 4 Splash ScreenWhy am I fan of Flash? I started my career in the web back in 1994 — years before Flash even existed. For years I was an HTML builder. And then in 1998 I was working at an agency in New York that did some of the earliest pioneering commercial work with Flash 3. I was not on their Flash team (their ‘team’ was actually only two people, giving me some initial insight into man-power savings in Flash technology). But I did see what the team was doing with that very early version of Flash.

What I saw in Flash then is, by and large, the same thing I see in Flash now — the ability to produce engaging content — and I mean (if you do it right) really, really engaging content — reliably, to every internet-connected computer in the world.

With HTML, I found that I and my colleagues were spending roughly half of our time ensuring cross-browser, cross-platform compatibility. Yes, I could eventually get my HTML to render in IE3 the same as it did in Netscape 2 — but I didn’t get into the web to spend half my time debugging. Debugging that stuff is just no fun.

In Flash I immediately saw the potential of spending my time creating experiences and expressing myself, and deploying with a technology that ensured that my work could be viewed by anyone on the internet. So I got into Flash.

Does this mean that I see no role for HTML? Absolutely not! Would I say that Flash is better than HTML or vice versa? Of course not (the question is as ridiculous as asking whether a hammer is better than a drill).

In fact, if you’ll notice, there is absolutely no Flash anywhere on this website. Why? Because I don’t see a need for it here — HTML is far better for presenting this type of information, just as it is for presenting the vast majority of data available through a web browser. No one wants to see Craigslist, or Wikipedia, or Google search to switch to Flash. Absolutely no one.

The Contribution of Flash

So what role does Flash play? Flash fills the role of providing the layer through which outstanding experiences can be deployed to any screen. What’s an outstanding experience? Well, it’s hard to define, but like Justice Potter Stewart said of pornography, ‘I know it when I see it.’

To state an unspoken truth: without Adobe Flash technology, the web would have been incredibly boring for the past 10 years. Before Flash, the only option for animation was animated GIF. Before Flash, the only way to deploy audio was through RealAudio, an external plugin (and which required an expensive server component). Before Flash, video was available through an array of external plugins (like Real, Windows Media and Quicktime), that could not be customized on a practical basis.

Even though it was only a decade ago, it’s hard today to remember what the web was like before Flash. HTML has just not proven itself to be a particularly expressive medium. If the web had waited for HTML5, YouTube wouldn’t yet exist.

Big Spaceship's Nike Air Project

Big Spaceship's Nike Air Project, Still One of the Most Visually Awesome Consumer Experiences Ever Created

And if you think back to the experiences online that you’ve enjoyed the most — I mean those apps, games, toys and sites that have truly engaged and wowed you over the past decade, I’d wager that the vast majority of those were enabled with Flash.

When you envision the interfaces, games and experience of the future, those are most closely approximated by Flash — you just can’t imagine building ‘Minority Report’ or ‘Iron Man 2’ in HTML. The interfaces that consumers really want to play and engage with (and I mean ‘play’, not just ‘use’) are those enabled by Flash, not HTML. Consumers want Flash in their internet experience.

So, why is there this persistent segment of the population that hates Flash? Well, any technology is going to have its haters. But, from my perch, I see Flash-haters breaking down into three camps (there are other gripes with Flash, of course, beyond these three; but, from a broad market level, I believe these three are the most persistent veins of discussion):

Flash-Hatred Camp #1: Flash is 99% Bad

Jakob NielsenI take this, of course, from the title of Jakob Nielsen’s (in)famous work. Were there horrible sites and experiences created with Flash? Of course. Was ‘skip intro’ indicative of obscuring, rather than illuminating information? Definitely.

But these, in my opinion, are reflections of poor design and engineering, rather than poor technology. Flash is far more powerful than HTML, so if you are poor designer, then you’ll be able to create some powerfully bad designs. And, over the next few years, as you see more and more HTML5 roll out across the web, you’ll see plenty of bad HTML5 design, too.

Flash-Hatred Camp #2: Flash is Not a ‘Standard’

This comment is both true, and misleading. It is true that Flash is not a ‘standard’, as CSS and HTML are. That is, Flash is not controlled or approved by an international standards organization, influenced by multiple corporate entities. So, in this sense of the word, Flash is most definitely not a standard.

However, Flash has long been so widely distributed, that it has been treated as a standard by web content creators and viewers alike. We can safely assume that people either already have it, or can easily get it. And for free. So, while Flash is not a standard in the way that W3C people or IEEE people mean the word, it is a standard in the way that the rest of the business, corporate and consumer world mean the word. And no, that’s not an overstatement. If everyone has it, it’s a standard, whether or not an international organization defines it as one. This is why there’s a large segment of the population that feels the ‘web is broken’ on an iPhone (in the way that it isn’t on Android devices) — because Flash Player is missing.

Flash-Hatred Camp #3: Flash is ‘Closed’

Related to the issue of standards is this issue of ‘open’ and ‘closed’. Many have cited this issue (perhaps most notably Steve Jobs in his open letter ‘Thoughts on Flash’) in their critiques of Flash. So let’s dive into the details.

First, what do people like Steve Jobs mean when they say Flash is ‘closed’? They mean that Adobe, and Adobe alone, controls the definition of Flash. And this is true.

Steve Jobs' Thoughts on FlashAt the same time, the issue of openness is not simply true or false — there are degrees. SWF (the compiled format of Flash) is an ‘open’ specification. Yes, only Adobe controls it, but any company can make content that publishes to Flash (and many do). The Flex compiler, like the Flex SDK, has always been open and free. And now, Flash Professional supports XFL, which is an open authoring format, meaning any company can now open and save Flash Pro source files. Indeed, in almost any and every respect, Flash is far more open than, say, Apple’s iOS.

I, like many of my peers, love open-source software. Linux, Apache, MySQL and PHP form the infrastructure of a huge amount of web work. Packages like WordPress, Drupal and Moodle facilitate the creation of powerful communication platforms. The web would really be a pale shadow of itself — and fewer people would have a voice in the internet — absent the contributions of open-source software.

But, open-source software alone does not make the web. We use proprietary tools like Photoshop and Illustrator (and yes, even GarageBand) to create a huge amount of digital content — and thank god these closed, proprietary tools exist, because they enable a tremendous degree of creativity.

Flash Power

While some see Adobe’s control of Flash as a drawback, it is the fact that Flash is owned and controlled by a single company that has allowed it to grow and mature so rapidly in the past decade.

Unreal Engine Playing in Adobe Flash Player 11When I started with Flash, in version 4, we had 12 commands in the ActionScript language, which you edited with a madlibs-style editor, the default framerate was 12 fps (and you hoped to get that), there was minimal audio support (without MP3) and absolutely no video support. Today we literally have Unreal Engine playing, on full-screen desktop, inside of the Flash Player and Photoshop written for the iPad with Flash.

That’s an astounding degree of progress. That represents progress measured not in percentages, but in orders of magnitude. It is not an overstatement to say that Flash today is over 10,000 times more powerful than Flash 4.

HTML Molasses

What has HTML accomplished in the equivalent timeframe? They haven’t even ratified the fifth version of the specification. That’s right. HTML5 was first proposed in 2004 and it is still, today, not finally ratified as a standard.

And that, in a nutshell, is the problem with HTML and international standards — progress is painfully slow.

So, HTML version 5, like HTML versions 1 through 4 before it, is great. You absolutely need HTML to power the web. It is the fundamental language of web experiences.

But, because it is an international standard, it takes very long to evolve — far too long for the tastes of consumers. HTML5 is only today offering the ability to create experiences that Flash offered almost 10 years ago. And, in five more years, there will have been something like three or four or five more versions of Flash, and HTML5 will still be in deployment.

HTML5 is Cross-Platform? Really?

Not only is the final standard of HTML version 5 not yet ratified — but it is not implemented consistently across browsers and platforms. In fact, HTML5 does not even work at all on over half of desktop computers.

HTML5 Compatibility Chart(If you want some more details and specifics on browser-support for these specifications, check out the When Can I Use…, and if you want to see how your current browser stacks up to the HTML5 spec at HTML5Test.com. For more complete history, check out Wikipedia.)

And, because supporting HTML5 requires a browser upgrade, it’s going to take quite a while for HTML5 to reach high levels of desktop penetration. A notable percentage of people upgrade their phones more rapidly than their browsers.

And, on those computers and devices where HTML5 is supported, it is supported differently. For example, you may not realize that Firefox does not even support HTML5 video (update: see comment) there is not one single video codec that is playable in all HTML5 browsers (meaning that you must encode to multiple different formats to support HTML5 video). And, full screen video is not available in most HTML5 browsers.

One day, HTML version 5 will be a true, cross-platform technology (and, of course, Adobe will be giving us the best tools to create HTML experiences; after all, who else would?). Today, however, in 2011, HTML version 5 is not actually a reliable cross-browser, cross-platform technology. It doesn’t even work on half of desktops. And, by the time HTML version 5 really is solid and implemented, Flash will be even more powerful, performant and feature-rich than it is today.

How Did We Get Here?

If the case is as I state, and HTML version 5 is still not yet finalized, much less fully and consistently implemented and deployed, then how has the conversation reached the current point, where there is such an anti-Flash perception in the marketplace, and such momentum behind an HTML specification that is not even finalized or fully deployed?

Well, of course, the answer is ‘Steve Jobs’. People hated Flash before Apple blocked Flash Player from the iPhone, but Apple’s actions had two main impacts:

Adobe Flash on the iPhone

  • First, the popularity of the iPhone as a product, and the absence of the Flash Player on it, meant that one of Flash Player’s core benefits — namely, that it works everywhere — was significantly harmed. (Adobe has since created new workflows enabling the distribution of Flash content to iPhones and iPads.)
  • Second, the popularity of Steve Jobs as a visionary lent a very strong, almost hypnotic credence to his public claims about Flash technology, popularizing arguments (some valid, others not) based in a longer history of antagonism to Flash.

Earlier this year I concluded a series of posts entitled, ‘The State of the Flash’ (on this blog, and Almer/Blank labs), intended to provide an insider’s overview of Flash technology. And, in retrospect, I focused too heavily on Adobe’s improvements in the technology and authoring tools, and clearly omitted consideration of the impact that Steve Jobs, Apple and the iPhone would have on the Flash market.

Over the past three years since iPhone banned Flash Player, the market for Flash, and the market perceptions of Flash, have been significantly harmed. And, as a result, many businesses are currently making technical decisions based in a significant degree of misinformation. For example, we regularly talk to clients and potential clients that have no idea that Flash actually does run on every platform, including iOS. Similarly, we commonly speak with firms, who have authorized a switch to HTML5 as the primary method of video delivery, without realizing how few desktop computers would be supported.

And Adobe has not yet properly messaged a strong, fact-based defense of their powerful Flash technology.

So, Really, Flash or HTML?

To me, and my peers in this industry, the question has never been ‘HTML’ or ‘Flash’? It’s ALWAYS been ‘HTML’ and ‘Flash’ — just which is better for which purposes.

Which technology is appropriate where? Everyone will have his own perspective on this question. But in my opinion, the issue broadly breaks down in this way:

Flash vs. HTML5 Robots

  • If you’re building for the web, you should opt for HTML over Flash whenever possible; use Flash for what it can do (provide amazing experiences), and use HTML for all else (if you’re still using Flash because you don’t want to program JavaScript roll-overs or menus, you really need to move on).
  • If you’re building for mobile web, of course, iPhones and iPads do not support Flash Player, so you need to build in HTML to support mobile Safari.
  • If you’re building games (either for the web, or as stand-alone apps), you really, really should be building in Flash. Flash has so much more power (from performance, to 3D, to video, to audio) and can be published to every platform (yes, including iOS). Just think: in what year are you likely to see Unreal Engine ported to HTML? Because, for Flash, that year is 2011. (I literally can not think of a single compelling reason to create games in HTML over Flash. I’d love to hear some opinions on that one.)
  • If you’re building cross-platform apps, it really boils down to the nature of the app. If your app is largely forms-based, or features an otherwise simple UI and experience, HTML5 is likely your better bet. Otherwise, for any more engaging experiences, or complex UIs, Flash is probably your preferred choice.
  • If you want to build rich experiences, and deploy those experiences to as many screens as possible (whether in a browser, or in an app), then your best choice is Adobe Flash (for many of the reasons I stated above). It’s not just a matter of the vastly superior feature-set offered by Flash — it’s that Flash actually offers an option to publish reliable, consistent experiences to every major connected device in the world. HTML does not.

That last point is, to me, the most compelling. Consumers want to engage and interact with content and brands through a wide variety of devices. And if a company pays to build and deploy to one device, they should be able to offer the same experience to any of their consumers, on any device, both through the browser, and an app. Flash offers the ability to publish to web and desktop, Mac, PC, Linux, iOS, Android, Playbook, and even Samsung, LG and Google TVs — all from a single code-base.

Current Device Support for the Adobe Flash PlatformFor the past several years, firms have been forced to choose which mobile platform to support — often opting to support iOS now, and Android later (eventually, maybe). And, in the process, offering different and new experiences on mobile platforms that are not available through desktop web browsers.

With Flash, these firms do not need to pick and choose which of their customers to support. With one production team, these firms can deploy deeply-engaging content, experiences, games and apps to all viewers, regardless of the brand name on the screen. They can even easily port their existing web content to apps for mobile and tablet devices.

This, on its face, is a huge benefit. As we enter yet another year of what appears to be extended economic uncertainty and pain, the massive economic benefits of utilizing Adobe Flash technology for creating apps and games and video experiences will become increasingly compelling to decision makers.

One team,
one codebase,
one experience,
every screen.

That’s what Flash, and no other technology, offers today to firms and developers.

If you are trying to create a rich experience, and deliver it to as many people as possible, for as little money as possible, Adobe Flash is your best option.

So that’s one of the key roles for Flash, and where I believe we’ll increasingly see Flash work trending in 2012.

And, I hope that someone like me is able to express a vocal defense of Adobe Flash technology, and an honest assessment of HTML, without being considered an HTML-hater. These are different tools for different purposes. (That said, anyone who tells you that HTML5 is actually a fully-baked and truly reliable cross-platform technology is lying to you.) If you’re a sophisticated and experienced developer, you should be able to determine which is optimal for which purposes. And you should be able to hold an honest discussion that recognizes the reality of these technologies, rather than hiding behind abstractions, partial-truths, and future hopes.

49 thoughts on “What’s Really the Deal With HTML5 and Flash?”

  1. This article is written as if you’ve taken my thoughts over the past three years and distilled them down from an incomprehensible mess into a mature and well-structured overview of the entire situation.

    Thank you for this :)

    1. Joseph, I couldn’t have said it better myself.

      R, thank you so much for taking the time to do this properly and without the reactionary tone that I’m sure you share with alot of us Flash oldtimers. I create experiences and will continue to do so with whatever tech is right for the job, it just turns out that Flash is right for so many of those jobs. Unfortunately, in my experience anyhow, it’s becoming increasingly difficult to convey this message to customers who don’t fully understand the issue, but have read lots of ‘Flash is dead’ BS. I think asking people to read this piece is a good place to start, so I hope you don’t mind the extra traffic.

  2. I would add one other advantage that Flash has over HTML and that is the tooling. I’m only reporting what I’ve picked up in conversations with other developers but I do not recall an instance where a developer said anything like, “the tools for creating complex, interactive, HTML based games/apps is better than those for Flash.” I personally don’t know because I haven’t used any of the modern tools for creating HTML content – a basic text editor is all I need to work with the very simple HTML that I need.

    I would love to see someone who knows both HTML and Flash to show the work-flow for creating something like a very simple game. Which version requires more code? Which can be built the fastest? Which would be more performant? Which is more stable? Would anyone argue that Flash wins on each of those accounts over HTML?

    1. polyGeek,
      Tooling for Flex is HUGE! That’s an important part of the reason I prefer Flex to JavaScript. I recently worked on a .NET project in which the client-side was done with jQuery and it was painful. Overall, I have to say that Visual Studio is a better IDE than Flash Builder/Eclipse. But, its advantages come into play mostly with C# or VB. It doesn’t help much when dealing with an uncompiled language like JavaScript. For one thing, you can’t use the VS debugger. You have to debug in each browser. For another thing, the Intellisense when coding in JS is minimal. I could go on but suffice it to say that the efficiency of Flash Builder is a big advantage over coding JS in VS or Dreamweaver.

      David Salahi
      Adobe Certified Expert, Flex

        1. r,
          You are correct. But “easier for me” translates into “cheaper for them.” It’s a shame that they will have to pay more to have the work done in JavaScript. Or settle for a less sophisticated UI. Or both.

          David Salahi

          1. Man, I couldn’t agree more. But Adobe just deep-sixed any remaining chance of clients taking Flash seriously. The work is just not gonna be there — as cost-effective as it might be.

  3. I wrote my own thoughts down on this a few days ago and there are striking similarties (http://www.philterdesign.com/?p=80). I don’t think we can deny that HTML is the better way to go for most web “sites”. Even sites with some level of interactivity.

    However, I think the last part of your article is where it gets interesting. Adobe has always really been about building TOOLS. Regardless of platform. Which is why they’re focusing on building tools for HTML development. And that’s also why they’re adding in functionality to export to mobile platforms using an AS codebase.

    As HTML displaces Flash (it never will fully, as there are aspects where Flash is just too far ahead, but we have to face facts), I think less and less emphasis will be placed on the Flash runtime, and more on the AS dev environment and tooling, because that’s where things become compelling in terms of the build once, deploy everywhere idea. That’s great for us as devs who already know the language.

  4. Great article! I teach continuing education classes in northern NJ for just about every program Adobe offers and I’ve been fighting against this misinformation for some time now. (I respect Steve Jobs’ body of work (RIP), but some of the untruths and half truths really weren’t fair to newer developers trying to make career decisions).

    I would add two things to your arguments. One is animation. Not only does animation run at a much slower frame rate through a CSS/HTML implementation, but it violates one of the central precepts of modern document design, and that is the separation of styling and functionality. Cramming animation (and content creation for that matter), into CSS seems forced and poorly thought out.

    And then there’s the javaScript issue. (In other words it’s not fair to say ‘HTML vs Flash’ since almost none of the new HTML5 goodness every one points to as a reason to ‘kill’ flash is available without CSS or JS or both. It’s really flash vs client side scripting.) Despite JS and ActionScript both being ECMA-262 languages, the open nature of JS has led to both a clunky syntax and a haphazard implementation. The buy-in for newer developers is much steeper in terms of the core skill set needed to create experiences that aren’t even up to the flash of several years ago. Someday, sure. But to tout client side techs for RIA is just following the herd.

  5. Awesome article, love the way you expressed your ideas in sentences, but i’d like to make some comments.

    Isn’t only bad design that fills what ‘Skip Intro’ did on Flash, What about FrontPage of HTML? Not mentioned here.

    Aside effect is that engineer is a gap in Flash Standards, isn’t about open it, it’s about consistent API, where Adobe could open player.swc to other technologies incubators, filling the gap where other technologies can take advantage of hidden features that only Adobe knows and put on their majority products, like Adobe Connect sharing screen.

    I end my sentence where doesn’t matter if it’s Flashx or HTMLx, it’s about industry issue, if can it made simple goes where your team have experience, other issues or eloquent ideas are just draft of what Flash is capable of. I know the power of each technology and each limitation.

    As a developer you just have to put your efforts where you know you’re putting on it.

    Long live to both technologies.

    Best Regards
    Igor Costa

  6. Good and insightful. This is what I’ve been thinking and reflecting over a long time. There is so much misinformation around and good that you are clarifying it.

  7. This was an article i was waiting for so long. You’ve put Every right where it should be. I’m so behind you about these points. I’m keeping this link for the next time someone talks flash down again…

  8. Wow, I think you are totally lost!!! Open your eyes and look and don’t just look at Flash & HTML5. Building game using Flash??? NOT a good option when HTML5 Canvas is way better solution (generally speaking), Mobile app, I guess you have no idea how to do NATIVE dev?, Desktop??? Enterprise companies ALREADY moved to HTML5/Javascirpt.

    Man, Please do NOT be silly and compare html5 vs Flash, that’s NOT the point!! please write this type of article when you have GOOD understanding of other technologies NOT just HTML5 and Flash… Spend at least 6 months or more one each platform and write an article like this… Maybe there are some reasons why Steve Jobs said flash is bad???

    1. I find this comment unfortunately typical of the tone (if not necessarily the grammar) of current discussions on technologies and Flash. Full of negativity towards Flash, and ad hominem accusations towards the author — all without actually saying anything specific.

      1. This guy is missing the point! Canvas is in an early stage of development. If I had to choose between Flash or Canvas (Javascript) at this time I would choose Flash over all the rest. Main reason is that there is a huge fallback on libraries and resources that canvas still misses.

        Another thing is that this guy again didn’t get the point about cross-browsers. Canvas is only in the latest (modern) browsers, so developing Canvas games is no option for now.

        I do stand by the point that the developer/designer needs to think before react. If you’re planning a website or game your first goal is to choose your target group. Do you wan’t this website/game be playable in all browsers or do you take consessions in this part, I know I won’t.

      2. Here are some examples.. You are saying..
        If you’re building games, use Flash??
        - What about HTML5 Canvas? DirectCanvas provides up to 50-60 FPS and runs on mobile safari? And you can use tools like phoneGap for uploading to appStore?? Look at what G. Skinner did with HTML5 Canvas. Apple is now allowing these games to access javascriptCore…

        If you’re building cross-platform apps, use Flash?
        - Wrong again, what about Titanium? or phoneGap? Of course HTML itself is not a good option.

        if you want to build rich experiences use Flex?
        - I have ran into multiple companies that BANNED Flash technology. I like Flex, I have done more Flex coding than you have for building enterprise apps, trust me on that.

        Flash is the past and pple should know that…

        1. wow – You seem to be a bit biased on this topic and are including some very misleading information.

          I’m a developer and like most developers I know, I’m in favor of any tool that is effective and right for the specific project I am working on.

          The problem with Canvas and HTML5 right now, as the author points out, is that it isn’t implemented or supported consistently across platforms. By using Canvas you are cutting off a huge part of the market. If you only want Safari to be able to view your content, then maybe it’s fine. Most companies I work for however want everyone to be able to see their stuff, and if you do an analysis of what the most popular browsers are and what they support, you quickly come to the conclusion that, as of today, Canvas is not an option. 2 or 3 years form now that may change, and at that point it might be an option, but not for now.

          Secondly, I have written tools and apps for many large enterprises and I have never heard of one banning Flash. Flex is huge in the enterprise segment because you can deploy rich apps to browsers on PCs running Flash – which all do – and package the same code as an app that will run on both Android and iOS (and QNX on Blackberry).

          I’m not Flash-fan boy, but for now, other than for a mobile browser use-case, I don’t see a reason to shy away from it. You can’t do nearly as much in HTML5 as you can in Flash, and since you can package Flash apps for mobile devices, and virtually every PC browser has Flash installed, the only time you have an issue is for mobile web browsers. For those cases, what I, and almost every professional web developer does, is have a fall back to HTML5. The experience isn’t nearly as rich, but it a reasonable alternative if someone is browsing to your site on an iPad.

          I’ve recently done work for major car companies and both requested this very thing – a Flash site, also packaged into an app, and HTML fallback (as a lower priority). I did it all and the final solution was the best of all worlds.

          I do agree that as HTML5 matures, it will be appropriate for more and more use cases. It will however never be able to replace Flash entirely, and at the end of the day it comes down to what the right tool is for the job.

          phoneGap was bought by Adobe, and it is clear they are committed to providing tools for all technologies and let us decide what to use when. Have you ever tried to use phoneGap to make a mobile app though? I have. Let me tell you that as soon as you do you will discover how great Flex is in comparison. Not to knock phoneGap, they have some value too, but in terms of speed of development, ease of use, and ability to express oneself, it just isn’t on the level of the Flex SDK.

          I’ve written native apps for Android and iOS. It’s fine, I don’t mind it when a customer requests specifically that. In fact, in some ways I like it. It takes me much longer to write a native app for either platform than it does to write a Flex app, so I make more money, and then I end up having to port over to the other platform and get even more work. I enjoy developing in Flex more, but Java for Android isn’t miserable – wish I could say the same for Objective-C.

          All this to say, it’s all about the right tool for the job. In some cases native apps make sense. I have found this to be the exception, not the rule, but there are scenarios when native is the way to go. The other 95% of the time, I recommend Flex. I enjoy it the most, it’s the fastest, and I get one code based for all platforms – hard to argue with that. When I’ve explained this to clients, and shown them prototypes with each and associated performance tests and schedule/cost estimates, they often tell me to go with Flex. When they don’t, that’s fine too, I’ve a fan of money too!

        2. As a member of the PLD team, trust me when I say that we could’ve done the same thing, in Flash, in about 1/4 of the time and about 5x the performance. It was more a proof of concept than something I would ever recommend to a client…

          You speak like someone who has no real knowledge of the limitations of canvas.

          Ya, it’s fast, now in iOS5 (almost a year after we published PLD), but what about all the iOS4 users (60% of apple users)? Leaving them in the cold, with their 1fps canvas software renderer?

          What about every other single mobile device on the planet? Just don’t support them?

          Not only is canvas dead slow on almost every mobile device, it’s completely inconsistent. Obviously you have never done any real development on canvas with Android or Playbook. It’s full of bugs, inconsistencies and maddening idiosyncracies.

          Meanwhile… I’ve been playing with Flash’s Stage3D on iPad / Android. 10,000 particles, fullscreen parrallax scrolling, hundred’s of animated Spritesheets, all running at 60fps on the GPU.

          Consistently.
          Across Devices.
          With Proper tooling.

          It’s a clear choice if you have your facts in order, and are not totally skewed by the latest cool new buzzword…

          But hey… to each his own, have fun developing your “Web 2.0″ killer game in “HTML5″, hosted in the “Cloud” (gasp!!)

          1. Oh… and I forgot to mention, obviously you do not require sound for your game. As I’m sure you’re intimately familiar with the completely broken Sound API in Safari Mobile… which is only marginally better on Desktop.

    2. @WOW, you definitely are a young programmer. I can see that just by the way you express yourself in your comment. And because if you were an experienced developer you wouldn’t write what you wrote. This is a complete professional article, which didn’t try to offend anyone as you are doing. An advice, try to read more, learn more languages (Programing and speaking) to open your mind and be more respectful to share your ideas. Best.

    3. I’m so glad HTML5 canvas has such awesome tools for development. I’m also glad the standard is finished. While I’m at it, I’m glad that HTML5 canvas works so well on IE6 and IE7 (still held onto by a significant portion of the corporate and education market). I’m just glad.

      Oh… wait. None of that is true.

      HTML5 Canvas is a better solution in many cases. Not all. Maybe if you weren’t so blinded by the shit you read on the internet you’d hate less “the technology your friends and pundits” hate so much. It’s just technology and tools. No need to bring douch-hattery into the argument.

  9. as other’s have stated previously, you reached in my brain and made sense of my thoughts in a way that is far better and more clear than I could have done. Thank You!

    To this day, I can’t get over how a company like Apple that positions themselves as “the company that empowers creative expression”, can take such an agressive stance against the 1 platform that truly gives artists the ability to create mixed-media experiences and deliver them consistently across every OS/browser. It’s even more appalling since the alternative they support in no way can measure up to the feature set and ease of use of Flash.

    As much as I’m excited about tools like Adobe Edge, I can’t help but think… ok, I was doing this in Flash 4…

    Thanks again for writing this post. I will be sure to reference it often.

    Carl

  10. That’s a pretty good article. The one thing that bugs me about it is that he doesn’t seem to be aware, or at least ignores it, that the argument from the other side for those that understand it, isn’t necessarily HTML 5 vs Flash, it’s “HTML 5 Canvas” vs “Flash” and “HTML 5 WebGL” vs “Flash 3D”. He didn’t mention canvas once. I’m not disagreeing with his arguments because they all still stand firm, but he just passed over the real issue. As far as I know there isn’t a single person out there that thinks Flash would be a better platform than vanilla HTML for something like a blog. Where people see the market share being tugged away from Flash has everything to do with the Canvas. Forget about the Steve Jobs argument, he moved the debate in a different direction and somehow got the consumer involved and spouting his word ignorantly.

    1. I think the canvas is mostly implied when he is talking about building rich experience in HTML. Also Canvas would be nothing without JavaScript. Canvas is nothing much, it is basically BitmapData in Flash. As for WebGL, it is another standard from HTML, which is even farther from being finished and implemented in all browsers than HTML 5, I think that is why it wasn’t mentioned.

    2. yYou make a good point, but it’s a dynamic one. Initially, the whole argument began with the silly notion of video.. add an html tag for video and suddenly, HTML video can do everything that one could do in Flash so why use Flash? That’s where 95% of the casual developers jumped on the wrong bandwagon. They didn’t know Flash, or else didn’t know when they were experiencing it (hello about 99.9% move sites).

      So, Canvas is the current ‘next contender’ to take a swing at Flash. Unfortunately, it will be like Silverlight… something to copy something already there and working just fine. Personally, learning how to use canvas for anything exciting (no, not static pie-charts or even harnessing Rapheal.js for slightly more interesting charts) is more difficult than learning some good ActionScript that will take you much further now and in the future anyway. (And no, I actually haven’t done any real Flash work for about 2 years!)

  11. R, Thank you for this article – it’s really outstanding. Thoughtful, well-argued, well-written, and reasonable. Awesome.

    One point that you overlooked…

    Until 2009, I was a PC user. I never understood why people hated Flash so much, or considered it buggy or crashy. In short, I loved Flash.

    Then, in 2009, I bought a Mac. (I’m still a PC user – now I use both). And, it was EYE-OPENING.

    Flash content that worked great on my PC was terrible on my Mac. Performance stunk. Many of my favorite Flash sites caused my Mac browsers (Safari, Chrome, Firefox) to crash consistently. Flash on the Mac is full of bugs – simple rollovers fail to work; mousewheel scrolling fails, etc.

    In short, my experience using Flash on a Mac was night-and-day different than my experience on the PC.

    I don’t know who’s fault that is, but at least now I understand why Mac users have hated Flash all these years…

  12. Flash was good when its main feature was compressing animations by using vector instead of bitmap! À little interactivity was okay, but common, a complete unreal engine in your browser ? Devs should know when to develop native or for the web! I want my browser fast/responsive and doing browser native printing/searching text etc…. NOT a complete virtual machine in my browser with lousy memory management!
    And this is coming from à fulltime flash/flex developer!! I’m loving flash for what it did best: animation! See http://www.coldhardflash.com

  13. Wow! Great Article.

    Its been awhile since I talked to you mr blank, but I have moved up to the Bay Area to KABAM and working on facebook games for a company that does Javascript and Flash Based Games.

    I go to many of the industry workshops and lectures since SF is the center of all things tech in the world (Yea Right!) and the amount of computer science Noise about cross platform games is just increasing in every lecture, post, and seminar.

    I am a proud member of the HTML 5 group up here and I think I am pretty ontop of what a HTML 5 game can do at this time. The Tools for CSS/HTML5/ Javascript games have made huge advancement and are very impressive in drive and attention. But (and there is a huge But) the actual ability to create a cross platform JS / HTML5 game is about 4 years (AS2) behind flash.

    Troubleshooting is just like 1999 and so bad that you can here the developers scream when they IE 9 / FireFox / Google or anyone else makes a new web browser.

    So as a Bay Area person now, I have to say that Flash is Dead, Long live Flash. At least that what you hear in every talk – media event – lecture. But I am the one who always brings up the Elephant in the room that no one wants to talk about. Why if Flash is dead, almost all of the games that actually make money on facebook Flash based?

    Clive Henrick

  14. it is a great article. very few times i read from people who started way back in the early days of flash. i began in flash 5, year 2001. I gotta say that flash has always amazed me, and i don’t find any other technology as fun as flash. recently someone showed to me html5, i felt like i was reading Actionscript 1 all over again. In my head I was thinking how can html5 compete with today’s flash. There is not even a good ide if i were to go for it, i would not even want to think about it, i think yo get my point. thanks for the great article.

  15. Thank you. I teach Design & interactive Media and Flash is my favorite part of the year. But I’ve been wondering if Flash has a place as an industry standard; will my students benefit from knowing Flash?

    I totally agree that without Flash the we is boring. And Flash is so much fun!

    Thanks for a great article, right when I needed it.

  16. My company has a Cloud-based project management platform built in Flash – http://airgile.com . We’ve been studying the behavior of users regarding on how their perception of Flash affects our product and the conclusions are pretty obvious but still interesting.
    Among our clients, there are those who know Flash, and there are those who don’t know Flash.
    The ones who don’t know what Flash is, are normally extremely satisfied with our product, stating that Airgile is very fast, responsive and usable.
    The ones who know what Flash is, either don’t care about which technologies are used in Airgile, or (and these are the “funny” ones), when they see that the application behaves and reacts differently (faster?) than what they’re used to, they immediately click with the right mouse button, and what follows is the “disappointment/disapproval-face”. These users never turn into clients but that’s expectable. What was not expectable is that some of these users turn into FUD spreaders about our product – “don’t use Airgile, because it’s done in Flash”. We can’t find any logic in such behavior – apart from the “it doesn’t run in iOS”, obviously.

    The conclusions are pretty obvious. Considering the satisfaction we have from the clients who don’t know what Flash is, it’s easy to conclude that there’s nothing wrong with Flash – they really enjoy the product, and actually, it’s Flash what’s making Airgile so fast and responsive.
    What’s wrong is the current perception of Flash that is being currently spread. And we can’t ignore that, because it ends up affecting our business.

  17. Wonderful read, though I’m surprised there was only one comment so far where it got stuck in someone’s craw. If there’s something I’ve learned about human beings is that they either like being told the truth, or would kill to preserve their own notion of it. I think that’s what’s fueled a lot of the conflict on this topic.

    One thing I wish you’d have talked about in a little more detail is the idea that Flash content is more expensive to produce because the tooling is controlled by Adobe. I encounter this argument more often than any other, and it’s always pleasing to be able to tell someone that I don’t pay a dime to produce Flash content outside of the man hours. People don’t seem to understand that the free SDK comes with a command-line compiler that is easily tied into any IDE.

    Sidenote; That argument of tooling cost is nonsense anyway because HTML is just as dependent on solid tooling.. Lame internet discussions…

    But regardless, a wonderful read. I’m recommending it to everyone.

    1. Yeah, I honestly have no problem paying the money for the master collection. I could make enough to pay for it in one job! I think the people who complain about it likely don’t charge enough for their services. Come on, take some pride in your profession guys!

      But anyways, the tooling created a whole generation of creative devs. Its such a unique talent! I honestly can’t wait for the same infusion of creatives into HTML. If we do then the web is going to be such a great place!

      Flash and HTML rock together!

    2. I can’t agree with the statement that creating Flash content is more expensive than HTML. Not any more. Most of our clients are now switching from Flash to HTML (yeah cause of iPads) and they are used to Flash capabilites. They can’t understand that some things are not possible or more time consuming in HTML. They require the same quality of visuals and interactivity in HTML projects. The final calculation is that cost of rich-media HTML productions are much higher than Flash ones in my agency.

  18. Thanks for your very “crudely realistic” article.

    One thing that you didn’t mention and that I think is an important thing to consider about Flash, is that AS3 is a neat language. I really don’t imagine how to make a complex, loosely coupled web application with HTML or javascript. AS3 is not the best language in the world, but it is easy to access (for people getting started in programming), and is organized in the sense that you can build complex structures that other programmers will easily understand.

  19. I like the articles tone in general however I miss some one objective point that is often forgot:

    - Plugins
    Steve Jobs (well iOS technicians) removed the ability for plugins in the browser. I think I have usually two plugins installed in my browsers: one is always Flash. Thus flash has become the “evil spirit” for Steve jobs that needed to expel from the web, but not because its flash but because its the only plugin. Plugins have three downsides to the html industry:
    1) They have unlimited power (pretty much) and therefore are potentially harmful – security issues (of course browsers are harmful as well, but then you can blame the browser vendor directly)
    2) Their APIs need to be maintained by the browser vendors (removing speed and power from its progress)
    3) If there is a plugin that is basically available everywhere then its users pull focus from the development of html. “Ah! that doesn’t work in html – lets learn flash”. In a html world as we have right now people actually do try to report bugs, push for updates and are genuinely interested in progress to happen.

    To me the only reason for flash being as big as it is today is the web standing still after the first browser wars ended with IE6 as winner.

    There is to me another reason as to why Plugins are bad. I mentioned it before at the older blog post: Plugin technology sucks. Many things that are not considered in current Plugin API of browsers:
    *) Print integration (different platform, different print dialog)
    *) Search integration (nope, or very difficult)
    *) Browser shortcuts
    *) Frame synchronization
    *) Antialiasing Settings
    *) Form controls (Password managers)

    All that stuff is a objective reason for why “Flash is bad”. I miss that in the article.

    Another thing: I think the reason people get uneasy about flash is because its mostly a straight HTML OR Flash decision. As mentioned in other comments: We make a Flash AND a HTML version. That sucks specially since some parts of Flash are worse than in HTML. Namely: Font rendering. HTML has been made for text and forms. If I do a Flash application I have to render text and it wont often just not be as good as in HTML (specially if one has to show a lot of text – like in this blog). Whereas with HTML5 technology its possible to do things without compromising those very important, basic features that Html does better. Having to decide sucks. It was like at the time when buying an Apple computer meant having no access to windows. (buy two notebooks?)

  20. In a investor research conference call this morning on the subject on HTML5 and Flash, Bruce Lawson pointed out that, contrary to what I wrote above, the latest version of Firefox does support HTML5 video.

    I regret the error.

    The issue on which I was confused, is that the different browsers support different video codecs for HTML5 video implementation. So, at this point in time, there is not a single video codec that can be played in all HTML5-enabled browsers. See Wikipedia for browser support of HTML5 video codecs.

    Thus, I believe that the basic point stands, and reinforces the broader point that HTML5 will continue to suffer from runtime discrepancies, leading to years of continued uncertainty (on issues such as encoding standards for video libraries) and additional production costs in debugging and platform-specific remediation.

  21. @Martin – It seems to me in that list of why plugin’s are bad, almost all of those apply equally to Canvas 2D and 3D as well.

    So I don’t really buy that as a “plugin” problem at all, it’s an issue with any interactive canvas that is not part of the DOM.

  22. @es Canvas has very similar conceptual problems like Flash. Yet: In a canvas still the shortcuts of the browser work and printing works as specified. The frames are synchronized and the antialiasing is the same as in the browser.

    Just because Canvas does share some problems you think all these problems I mentioned are invalid?

    @r The development costs are no problem as long as you have developers and/or jobs. Everybody will ignore this problems as the clients still request html5 and developers shift to html5. AND (important): More development costs means more jobs for devs & testers. (golden times ahead?)

  23. R., Let me add an enterprise spin here. Despite the Nov 9th announcement of “no-Flash-for-mobile”, the main points covered here are still valid. In Flash’s (really Flex/AIR’s) defense is the thought leadership developed over the past six years to migrate Flash from being primarily a designer-centric platform to becoming a enterprise-grade development platform.

    - Starting with Flex 2.0, we witnessed many enterprise developers with J2EE/.NET backgrounds entering the scene because they saw AS/MXML and Flash runtime as a viable means to develop RIAs without the PITA factor that prevailed with AJAX libraries and frameworks at the time.

    - They brought with them a mindset of frameworks & micro-architectures (Cairngorm, PureMVC, Granite, etc) to support medium/large-scale development, enterprise-grade SDLC, automated testing, partitioning of client-side business logic, etc. For a while (and still is for many of our clients), Flex atop Spring/Hibernate was (is) the default for J2EE app dev.

    - At this current time, I am not aware of architectures, frameworks and tools to support HTML5 development ON AN ENTERPRISE-GRADE LEVEL. Sure, Canvas is cool; even some of the CS5.5 features to support HTML5 are neat. However, authoring tools have to integrate into a meaningful workflow to support 10-25 people muddling through design, build, test, and deploy. The Flex community has figured out many of these SDLC issues…..when I look at the current state of HTML5 SDLC, it feels very 2005.

  24. Adobe’s announcements from the week of November 7th, regarding the future of Flash, essentially negate the argument above. For my more current thoughts, check out this more current post on the future of Flash and AIR.

    Despite how wrong this post is today, I’m glad I wrote it. It was a moment in time, fueled by misinformation and confusion. This post gave voice to an underlying primal yell from the community, so at least Adobe knew what it was giving up on.

Leave a Reply

Your email address will not be published. Required fields are marked *


3 − = one

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>