Filling in the Gaps

HTML started as a very simple language. By many accounts, it's still very simple. You create some text and you wrap some tags around it. The tags provide a small measure of meaning and allow user agents—aka browsers—to present the content in a meaningful way.

In the early days of the web, browser developers quickly added features that helped web developers build more exciting sites and applications. Tables, font tags, and images gave us a decent amount of flexibility to create the sites we wanted. We even had this fancy thing called "JavaScript" that allowed us to interact with the page in basic ways.

One Plugin to Rule Them All

One notable addition was the embed tag (and the applet and object tag after that). It's notable because it recognized that browsers could not do everything. From this sprung forth slow and cumbersome Java applets, Shockwave 3D, Real Audio streaming and more panaroma plugins than you could shake an animated trailing cursor at. Adobe Flash, née Macromedia Flash, was born in this era.

At this point, one of the largest problems for web developers was ensuring that site visitors had the necessary plugin installed. Otherwise, it required users to download it, install it, and restart their browser. Requiring this complicated process just to view your web site meant that fewer people would take the time to complete the task.

Impressively, the Flash player began to be bundled with browsers. Flash, above all else, became nearlyubiquitous with statistics showing the Flash Player being available on 99% of all Internet-enabled desktops. As a web developer, you now had technology that you could rely on almost as much as HTML but with a lot more power. At the turn of the millenium, even CSS was still gaining traction.

It's important to note that Macromedia (and Adobe) did not rest on its laurels. They continued to fill the gaps of what the browser could provide us. Between then and now they've managed to offer useful features such as cross-domain requests, local storage, binary sockets, multi-file uploads, and shared objects. On the animation front, there are 3D effects, inverse kinetics, and pixel bending. On the streaming side, there is support for multiple codecs, full-screen playback, and dynamic streaming. Flash also allows for screen, audio, and webcam capturing, as well as peer-to-peer connections.

Yet, Flash has turned into an annoyance for many consumers. Garish advertising is strewn everywhere; large, slow and confusing animated site intros are unnecessary glitz; deep-linking to content is often impossible; and normal browser features like keyboard navigation aren't available.

Flash's downfall, however, has more to do with those wielding its power—the web developers and designers who misuse it—and less to do with the technology itself.

Shifting to the Browser: is HTML5 the saviour?

First, a small apology: I'm lumping a bunch of technologies under the umbrella of HTML5 for succinctness. I hope this isn't too confusing.

These days, browser developers are moving quickly to add new features; many—but certainly not all—of which compete with Flash. There is canvas, SVG, CSS-based animations, web sockets, local storage, multi-file uploads, and native video and audio.

These new features do negate some of the need to use Flash; however, I'm reluctant to think that these few features will be the death of Flash. There are simply too many use cases out there for which HTML5 does not serve. Hulu's reluctance to embrace HTML5 is very much case in point. Chat Roulette would be another. Or tinychat. Or Adobe Connect.

HTML5 just doesn't have the same breadth of features as Flash. That's not to say browsers won't get there someday. It's just not there, yet.

What of the mobile web?

The biggest question these days is, "what about the mobile web?" Or more specifically, "what about the iPhone or the iPad?" (Or Android, but it looks like they're going to have Flash soon enough.)

For the most part, I have not missed Flash. Sites have provided non-Flash alternatives or I have been able to rely on native applications to fill the void—such as with games or other applications more likely to be found in a native desktop application than on the web.

Apple certainly isn't hurting right now by pushing developers onto their native development platform. When you look at the current use cases for the mobile web, many of the features in Flash just aren't as necessary.

Yet, these devices are designed to render the web as if it was a desktop browser. Many sites are unfortunately created for the desktop with Flash as an expectation—they expect Flash to be ubiquitous for they were made in a world that predates the iPhone or the iPad. My dentist's web site is all Flash and unviewable on the iPad or iPhone. My massage therapist's web site is all Flash and unviewable on the iPad or iPhone.

Apple runs the risk that the Flash platform—combined with the right mobile device and proper access to the underlying hardware—could provide incentive for developers (and consumers) to shift their focus, time, and money to platforms other than the iPhone or iPad. Build once, run everywhere (or at least, as many places as possible) while also supporting what already exists on the web.

Our duty

As web developers, we should choose the best tools and technology for the job. To do otherwise—out of ignorance or some duty to "web standards"—is a disservice to the clients and customers we serve.

Right now, HTML5 is slowly becoming a viable alternative to Flash for a greater variety of situations. However, Flash will continue to fill in the gaps for years to come because it continues to solve problems that web developers have and that can't be solved with any other client-side technology.

Published May 17, 2010
Categorized as Opinion
Short URL: http://snook.ca/s/979

Conversation

38 Comments · RSS feed
Dirk said on May 16, 2010

Finally a down-to-earth, pragmatic opinion. Best article on this emotionally encumbered topic so far.

Tyler said on May 17, 2010

This is a very good post on the ongoing debate between Flash and HTML5. Something in which I dont really pay very close attention to. Yet, this article has really done a nice job on actually providing good detail on each subject. Great work.

Andreas said on May 17, 2010

Adobe is probably working on html5-compile support in flash already. So that you can make SVG, CSS-based animations, web sockets, local storage, multi-file uploads, and native video and audio right from flash.

Ash Kendall said on May 17, 2010

It's amazing to see the amount of passion and emotion this topic seems to bring up in the web-development community. As someone who has been stood on the sidelines of the community for some time, it's quite fascinating.

Personally, I cringe when I come across an entirely flash-based site, but that's not to say I don't think it has some great uses, and I certainly have no desire to see it 'die'.

I think you're right though. Canvas and all the other 'flash-destroying' technologies have a huge fight on their hands, and Adobe have the experience - not to mention the user-base - already.

Also, despite the public feud between Apple/Adobe, that I don't think anything will change. Give it a month and no doubt it'll be like it never happened!

Neil said on May 17, 2010

Apple Vs Flash - in real world talk! Android can already support flash, and it does it well. Flash has its uses - it might not be perfect but it does have a purpose. The main situation here is that Apple want to be the only closed source part of their system - if they cannot open it, or control it, they shut it out - will it be their downfall??? I doubt it as there are too many fans - i personally jumped ship and cannot be happier.

HTML - untill this is stable across the majority used browsers - what business can truely justify it anyway!

Joe George said on May 17, 2010

HTML5 may progress into many developer workshops as an alternative for certain existing features, but I think Flash can do even more stuff than it currently offers. I welcome the fact that the basic features can be covered by html5. However, I don't see the possibility of flash being taken away from the toolkit of the developer any time soon.

Good Article.

Pies said on May 17, 2010

It would be nice if you actually named at least one or two of Flash features that you think HTML5 and related technologies lack.

Jeff L said on May 17, 2010

Pies, read the article he linked from Hulu.

Stephane said on May 17, 2010

"née Macromedia Flash" Nitpicking here but Flash started as the FutureSplah animator before being acquired by Macromedia.

I do think Flash has some use but I believe it's constatly used for the wrong reason. I don't miss it on my iPod and I don't believe I will miss it on my iPad.

Mathias said on May 17, 2010

Actually, ChatRoulette isn't a very good example. It’s perfectly possible to point HTML5 <video> elements to a streaming endpoint.

Jonathan Snook said on May 17, 2010

@Mathias: Actually, ChatRoulette is a very good example. You still need video capture and it uses peer-to-peer to avoid bandwidth.

kevin said on May 17, 2010

But HTML5 gives us freedom from porn, or so Steve Jobs says. Bow! /sarcasm

Finally someone says that Flash still has purpose and is not near the end of its life yet. Apple has caused too many generalizations cast on Flash to hide its uses.

Android supports flash. Android devices pulled ahead of sales of iPhone devices this year, as developers there are markets there. We must be pragmatic in our decisions and not just simply agree with what Apple says is best for us.

As for Flash 'going away'- it has at least 5-10 years of life left. It all depends on how fast -all- browsers catch up in fully supporting HTML5 and CSS3.

kevin said on May 17, 2010

Erk, hit Add while filling in info by accident.

To add to my last sentence- it all also depends on use-case too.

Is this site easier to do in Flash, or HTML5/CSS/JS?

http://mario.nintendo.com

Even though that site is 4 or 5 years old, its a great example of where Flash works better for presentation, where it may take a lot longer to achieve with other technologies.

Georges Jentgen said on May 17, 2010

Very nice article... following you on twitter is fun, but I prefer your articles... *stillfollowingyou* ;)

You really pointed out some of the best features of the flash platform. Things that won't make it into the browser soon. The other thing that Adobe has besides their technology experience is their authoring tools: Flash CS5 is great, for me as a developer, Flash Builder is uber-great! Can't imagine going back doing the same stuff using Javascript...

adam qureshi said on May 17, 2010

Excellent ! im going to send this to my clients who want a FLASH site just because it's cool ! in my experience clients dont understand web standards , HTML 5 CSS3 they could care less , time fo some client education

Tim McCormack said on May 17, 2010

One of the biggest problems with Flash is that Adobe does not support it on all platforms. I'm running 64-bit Linux, and it is rare that Flash will load properly. Even then, many sites refuse to load since I have an old version of Flash -- Adobe releases for Linux long after it releases for Windows and Mac. As a web developer, this leads me to regard Flash as a very last alternative, and only then after putting fallbacks in place.

It is interesting that you note that the uses of Flash rather than the technology itself may have led to its downfall. As HTML5 gains parity, won't this lead to the very same problems?

Jonathan Snook said on May 17, 2010

@Tim McCormack: Yes, it will lead to the very same problems. Ajax has led to uncrawlable sites and lack of deep-linking. Canvas will lead to accessibility issues. People will complain about gimmicky sites with unnecessary animation or pop-up advertising. HTML5 doesn't solve these problems because they're not technical issues but social issues (in the sense that these problems are driven by people).

Geof Harries said on May 17, 2010

HTML5 can handle basic video, but no one in these discussions ever seems to mention advanced streaming. Silverlight made it possible to watch the 2010 Winter Olympics for a whole new crowd of people. It was quite freeing from the same old format of cable television: you got to see the sports rather than hours of mindless chatter.

"Cowboy" Ben Alman said on May 17, 2010

@Jonathan Snook: You say, "Apple runs the risk that the Flash platform—combined with the right mobile device and proper access to the underlying hardware—could provide incentive for developers (and consumers) to shift their focus, time, and money to platforms other than the iPhone or iPad. Build once, run everywhere (or at least, as many places as possible) while also supporting what already exists on the web."

I'm sure, from Apple's standpoint, you've just described the perfect "have your cake and eat it too" scenario. As soon as another competing platform starts to support Flash, that company and platform will bear the burden of dealing with issues such as short battery life (etc) while Apple can simply keep doing what they're currently doing and watch things unfold.

Then, if Apple sees the market shift, all they'll need to do is "flip the switch," finally enabling Flash content on their device (since it's certainly capable of supporting it). At this point, they will no longer have to worry about defending against complaints of how much "the iPad sucks" due to any Flash issues, because Apple will be able to point to the competitor's device and say "well, it works the same on their device, so it's not the iPad, it's the Flash."

This is obviously a simple example, but still.. from Apple's point of view, why should they enable Flash right now, when they can just keep doing what they're doing?

Jonathan Snook said on May 17, 2010

@Ben Alman: And I agree, they can get away without Flash for now. It's similar to the multi-tasking situation. Sure, they've done without it and could likely continue without it for some time. But it'll be nice to have when it does come around.

Derek K. Miller said on May 17, 2010

You identify the main problem well here, as one of implementation: there's no good reason a dentist's website should be (or ever should have been) built entirely, or even substantially, in Flash. Those sorts of websites seem to be built by people who want pixel-level control over every aspect of how a website looks and operates -- and whose design chops often don't live up to the control they give themselves.

Long before the iPhone and iPad, I was constantly gritting my teeth when I encountered sites where the first thing I needed to do was "Skip Intro" (if that was even an option), or where I said to myself, "How the hell to I navigate this thing?" Conversely, I didn't feel that way watching a video on YouTube, or using the Flash-based features of Flickr (which they've kept reducing over time), or using a clever interactive infographic that took advantage of what Flash is good at.

Flash has been a decent stopgap for ubiquitous web video, but I think it's on the wane there. For interactive animations, it's still the best option, and maybe that will change -- but I don't mind if it doesn't. But it still bugs me that it seems to pin my processor in the red every time it fires up.

Aaron said on May 17, 2010

Great point of view. It seems like technical things that Flash can handle but HTML5 cannot is for more "single-purpose" (for lack of a better word) uses that tend to be handled better in a "native app" anyway. It makes sense that Apple would not allow Flash on its iPhone OS devices (performance, battery, stability issues aside) when native apps would handle these kinds of issues better. I'm thinking that most users given a choice of a Flash app on a webpage or a native video chat app would go with the native app. The problems that Flash solves on the desktop are still solved on the iPhone OS (or any other "non-Flash" device), just not in the browser. I don't think that's a bad thing.

Michael Kozakewich said on May 17, 2010

I think it's important that you mention our most important duty: to build web-pages (with or without Flash) in a thoughtful manner, so that HTML5 (et al) doesn't become what Flash is now.

Because, really, it doesn't matter if we get rid of Flash, if we just end up doing it all again with a different technology.

(Think: Canvas libraries that create the same 'skip intro' sites we saw with Flash, or, as you mentioned, ajax that doesn't allow deep-linking.)

We need to be warned, again and again, what can happen if we don't do our duty.

Ben Nadel said on May 17, 2010

Jon, I think this point is simply on the money:

"As web developers, we should choose the best tools and technology for the job. To do otherwise—out of ignorance or some duty to "web standards"—is a disservice to the clients and customers we serve."

Part of how we decide on the right tool is how the user experience is crafted. We do a disservice to our clients to provide them with a sub-optimal user experience for any reason that is not dictated by the target users.

Andrew Yates said on May 17, 2010

Great to hear the opinion from someone with some common sense. You have hit the nail on the head. Great post.

Karlo Espiritu said on May 17, 2010

Very nice post. This is one of the best posts I read about the HTML5 vs Flash debate. Although HTML5 can handle most of Flash's features, there are still other tasks which I think Flash still do best such as interactive animations. I think Flash is still very useful (at the moment) for displaying products that needs customization before you buy it (cars, iPhone cases, etc..). It would be nice to see if HTML5 can also do such tasks in the near future. I very much agree with your closing paragraph -- it really boils down to "choosing the best tools and technology for the job". Thanks and I'll always keep that in mind.

Tasarım said on May 18, 2010

A long and nicely written article Jonathan. Flash actually does have very strong points when it comes to web developing. But i do concur that some designers really misused flash along the way.

But i hope HTML5 will be awsome and instead of making flash become "old technology" (like Steve Jobs say), they will work very well together :)

Nathan Peretic said on May 18, 2010

Hi, Jonathan. You deserve credit for noting the historical innovation the Flash standard has seen. Most articles focus on the comparing current Flash and HTML features or attempting to extrapolate their respective technology arcs.

I wrote an article inspired by yours that attempts to explain how Adobe got themselves into this position despite the aforementioned innovation: Adobe's Flash Dilemma. The theory is shamelessly stolen from Clayton Christensen's book The Innovator's Dilemma. That is, Adobe was content innovating within their market (PC browsers) rather than betting heavily on emerging markets (Mac, iPhone). I'd love to hear your opinion.

Kirk Franklin said on May 18, 2010

Hulu's reluctance to embrace HTML5 is very much case in point.

Counterpoint: ABC, CBS, CNET TV , CNN, ESPN, Flickr, Fox News, MSNBC, National Geographic, the New York Times, NPR, People, Reuters, Sports Illustrated, Time, Vimeo, and the Wall Street Journal all use HTML for video for people using iPads.

Jonathan Snook said on May 18, 2010

@Kirk: You're missing the point. I never said that the iPad was incapable of doing video. Just that HTML5 didn't have all of the features that Flash has when it comes to video. For some people, that's okay (as in most of the examples you've given; expect for ABC, I was told to download their app). For other people (like Hulu), that's an issue. Every organization will need to decide whether it's worth it to choose one technology over another.

When I say that houses can be built with brick or wood and I say some will choose wood, it's hardly a counterpoint to show me all the houses built with brick.

Scott Corgan said on May 19, 2010

Embed tag is evil!

Nigel said on May 24, 2010

Very disappointed at the way you imply that Standards on the web is a "bad thing"
I also have to disagree that Flash has been a good thing over all - by allowing people to do things the wrong way for so long, it has made it much harder for real progress to be made - IE6 works just fine with a purely Flash site, you know?

Jonathan Snook said on May 24, 2010

@Nigel: Standards, generally, are not a bad thing. I use them all the time. However, the standards dogma is not helpful and is limiting. People, like you and me, build sites with the tools we have. At one time, we built sites with image maps and tables for layout. Lots of font tags and marquee tags. Give people a hammer and you can expect them to hit a few thumbs regardless of the technology, standard or otherwise. Flash has not limited progress and and it has not limited your ability to build a site in the way you choose to build it. If we were to be rid of any technology that could be used poorly, we'd have nothing at all.

Matthew Fedak said on May 27, 2010

Struggling to understand why everyone is saying Flash is bad. Its great and since AS3 came out it became even better and will still be supported by people who for some reason won't upgrade their browser to one that supports html5. The reason so many people did it the "Wrong Way" is that Flash presented the novice developer with an easier way to position elements and do mouse hover overs etc. If html5 is to be the cure to this problem then someone needs to make a really great tool to build html5 web pages with with no html skills required! The struggle continues...

Jonathan said on June 02, 2010

This is a great read Jonathan! It gives a new perspective on what are the pros and cons of using HTML5 & Flash on a website.

dania said on July 03, 2010

i was searching for web development blogs and i came by your page. i am surprised to see such good content. but don't you think that the outlook of you blog page is distracting the readers from the content to the layout more? i know this company that has helped me bring in more traffic and has made my site decent and attractive. i m sure they will be happy to help you as well.

Миранда said on July 03, 2010

Смотри твоя знакомая Даша вытворяет http://pornokontact.ru/39598-.html

Web Design from Lyons Solutions said on July 04, 2010

I am still a great supporter of HTML over anything. And to be brutally honest, the reason is that I am not a designer and another reason is that HTML is still single handedly the most SEO friendly than any other!

Sorry, comments are closed for this post. If you have any further questions or comments, feel free to send them to me directly.