HTML5 Can’t Exist Without the Flash Platform

Let me start by saying I’m not anti-HTML5. I think it’s great. I think open standards are core to the DNA of the web and that’s part of the reason I’ve been encouraged that Adobe is moving more in that direction with AMF, RTMP, and some of our underlying protocols. But I also don’t think that means there is no room for companies like Adobe and Microsoft that want to see the web be better. I don’t think it’s an issue of corporate greed or vendor lock-in, but I understand the economics of how those end up being profitable. On the Adobe side I think it’s just that we have a lot of services and tools that we want to provide and we need a platform we can innovate quickly on. When the winds of technology shift we want to be able to make sure our customers can stay ahead. Video? RIAs? Real-time collaboration? Enterprise data management? All things our customers needed that we could build into the platform and make available to them. With the way open standards work it’s just not feasible to push those innovations through. So we’ve been very careful with the Flash Player. That’s how we provide our customers value. But it goes beyond features and into another problem with the web: a consistent experience. From browser to browser you’re going to get wildly different implementations of a “standard”. With Flash Player you can deploy your content and know it will run the same way for everyone that has Flash regardless of browser or operating system. There was an example today that made me chuckle and write this post. It’s not the best example; blurs and sparkly trails are not necessarily ideal uses of Flash, but in this context it was important. They wanted to capture a specific experience, it added value to the overall presentation, and was worth taking the time to create. Here’s the email:

Hey all-

My 20% at Google is the NORAD Santa Tracker, which gazillions of adults and kiddies use each year to track the progress of Santa across the world.

Last year, I used our Flash API to create the tracker map, primarily so that I could make a glittery comet trail of Santa’s past 7 stops. I tried it in JS with resized animated GIFs, and then decided that Flash would be much less painful – and was right. The code drew a line on a Sprite, blurred the line, then added some little sparkle movies and animated them.

You can see a screenshot with some trail here: http://www.wired.com/images_blogs/photos/uncategorized/2008/12/24/santa_nrad_edited.jpg

This year, I have ported the map to our JS v3 API, because we are doing aversion that utilizes the Earth plug-in (3d flying Santa!), and I wanted to make sure there was a version that didn’t require a plug-in. But, I really miss the glittery comet trail.

I wanted to get your advice on the best way to do this in JavaScript, given the following (flexible) requirements:
- Works in FF3, Chrome/Safari, IE 7+.
- Doesn’t require images (bandwidth is an issue).
- Doesn’t require a plugin

I’ve contemplated canvas, but not sure if that supports foreground blurring,and don’t know if it would translate to VML with excanvas. It doesn’t seem very SVG-y. I could try animated GIFs again, but they don’t animate the same across browsers. I could also try window.setTimeout with some PNGs, but that will slow down the browser, require images, and won’t achieve the same blurred line effect.

Do any of you have a better idea? (Help prove to me and the kiddies that Open Web can make magic happen! :)

Thanks!

- PamElf (<- my elf code name)

Not an off the wall request by any means. It’s a pretty basic task and using open standards in this case is a great way to go. Especially considering that she’d like mobile support for this (later email) and HTML is still the best way to target every level of device. What surprised me was the responses:

From: Jeff Schiller

My two cents:

SVG Web does support the blur filter so you could get this working cross browser if you force the flash renderer.

If you just forced the flash renderer for IE, that doesn’t solve the problem of Chrome/Safari who have not turned on their SVG Filter support.

SVG Web is a cool project to support SVG, but a requirement is that you have to use Flash. So even when you try to use open standards, you still have to fall back to Flash in some cases.

From: Dion Almaer

A hack would be to have a separate <canvas> that draws the blur w/ an opacity and z it? :)

Seems like a decent solution, but requires some hacks. This is fine for a 20% project, but when you’re trying to be productive, are hacky solutions the best way to go?

From: Alex Russell

How ’bouts IE 7+ with GCF? That’d let you try things like <canvas> more directly.

A perfectly fine way to do it, but GCF is the Google Chrome Frame plug-in, which would mean another plugin and as Pamela says the message after that, it’s not ideal at all from an end-user case.

Now I understand that the major roadblock here is the IE 7 requirement. If it wasn’t for that you wouldn’t need the Flash fallback for SVG Web and you wouldn’t need to use something like the Chrome Frame plug-in to make it work. But that’s kind of the point of open standards. Before you can really take advantage of a technology you need to get a consensus from everyone. All of the browser vendors have different agendas and different priorities. Right now Microsoft is the hold-out, but what happens if something comes along and threatens another browser vendor’s goals? Then they’ll be the hold out. That’s part of the price you pay for standards; you have to get everyone on the same page before you can move forward.

In the end, that’s better for everyone. Once everyone gets moving in the same direction, that becomes the baseline, and the web is a better place. We’re seeing that start to happen with HTML5. And despite the “Flash is dead” rhetoric, HTML5 will be a good thing for the web. Things like playing basic video and doing animation/vector graphics are so simple and yet so integral to the web experience that they should have been done in an open standards way a long time ago. But if Flash didn’t exist those things wouldn’t have become as important as they did as quickly as they did. And even now, as the web tries to move forward, Flash is being used as the fallback so that the web can evolve even if not everyone in the group buys in.

To me, that says that Flash will always have value. We control the platform so we can keep innovating and pushing the web forward in our own way. Maybe that’s content protected video, maybe it’s P2P support, maybe it’s a binary transfer protocol, maybe it’s hardware acceleration, maybe it’s writing your own filters and blend modes, and maybe it’s real-time collaboration. Eventually, the open web will incorporate all of those things. But I still wish there was more cooperation between the companies who have technology core to the web and the open standards groups who create the future of the open web. If nothing else, the open standards organizations can see what features stick and which don’t so that you don’t waste valuable time trying to standardize something users don’t want.

In the end, everyone wins. Flash won’t die, Flash developers can still be on the cutting edge, and Adobe will continue to support designers and developers on both sides of the open web/Flash spectrum. We’re all part of the web ecosystem in our own ways. Just like any ecological system, if one side goes extinct, the other is going to suffer.