HTML and Flash Thoughts

Kevin Lynch blogged today in response to a number of issues that have cropped up recently and does a great job of laying out both Adobe’s vision for Flash and for web tools. That and a couple of other posts got me thinking a bit. The first is Jeffrey Zeldman’s post. He contrasts Flash with some of the benefits of standards. Most of the time I see “HTML5 is going to kill Flash!!” without any kind of rational conversation on why. Jeffrey does a better job than most. His intro paragraph is a perfect sample:

Lack of Flash in the iPad (and before that, in the iPhone) is a win for accessible, standards-based design. Not because Flash is bad, but because the increasing popularity of devices that don’t support Flash is going to force recalcitrant web developers to build the semantic HTML layer first. Additional layers of Flash UX can then be optionally added in, just as, in proper, accessible, standards-based development, JavaScript UX enhancements are added only after we verify that the site works without them.

My Current Problems with Flash

There are a couple of things I hate about Flash inside the browser. Both of them were covered very well by Richard Leggett in his Flash/HTML5 post. The first is browser integration. One of the things I think a lot of users find annoying about Flash is that it feels so alien in the browser. We have basically a single API, ExternalInterface, that developers can use to connect HTML and Flash. But it’s very awkward and it makes both the development experience and end user experience feel very different. Flash has become the “black box” of the browser. If you take a look at AIR, you see how great those two worlds can be. Flash and JavaScript can call each other’s APIs, Flash can access the DOM, and JavaScript can call Flash only when it needs to, for things like playing sound or performing graphical tricks. SVG and Canvas add a layer of complexity to that, but I don’t think that’s an insurmountable hurdle. In fact, I think those two technologies, when combined with Flash, would make a very interesting combination.

But that leads to the other problem. Flash is horrible when it comes to the semantic web. And this causes some other issues, like deep-linking or search engine optimization that we’ve worked on, but haven’t perfected yet. As Richard says, and Jeffery notes, the current solutions aren’t entirely bad. Flash works very well with a CMS like Drupal so that you can have the semantic web layer and a Flash layer. And largely it depends on your project. In some cases that semantic layer isn’t going to be as important. It’s also important for developers to use Flash inside HTML where appropriate. Another thing I’d like to see is making it easer to create Flex applications that don’t take up the whole page, but work within an HTML context. Think a bit about what I said above combined with some kind of Dreamweaver/Flash Builder integration so that the developer can unify the HTML and Flash experience at a tooling level.

Adobe Is a Web Tools Company

People seem to think that Adobe has eschewed HTML5 in favor of Flash. A lot of innovation goes into Flash. We have a number of features that our customers want and we’re able to add those to the runtime and create tooling around them because we can move quickly an innovate. HTML5 is obviously more consensus driven. As a result, some of the details that would be require to add tooling support haven’t been fully nailed down yet. But we’ve moved ahead to do what we can. Dreamweaver continues to have great HTML and JavaScript framework support. We’ve shown sneaks of BrowserLab that will help HTML/JS developers see how their site looks in various browsers. We’ve included the latest versions of WebKit in Adobe AIR so that HTML developers can take advantage of a lot of HTML5 features in a desktop context, and in ColdFusion we’ve got support for creating ExtJS 3.0 components with ColdFusion tags. We even sneaked a feature at MAX that used Flash and Illustrator to display animated vector content using the canvas tag. So Adobe is supporting HTML5 in a number of different ways already and experimenting with even more. When the spec is nailed down, you’re going to see a lot of Adobe tools that support it.

Flash Is Driven By Customers

It’s important to remember that Flash isn’t some isolated plug-in that we maliciously deployed on 98% of web browsers and that consistently hits 80% penetration for new versions in 6 months. Flash is driven by customers. Both developers and end users. Developers still want content that runs the same way across browsers (and now devices). They still want web content that provides innovation around things like video, sockets, animation, data push, web camera, 3D transformations, and works across multiple platforms and 98% of the people on the web. There are some developers who won’t ever use Flash, and that’s fine. There are others who want to do things that HTML5 just doesn’t have an option for now. Flash is there to fill that gap. Part of the reason we can innovate with Flash is because we control the source code. While we’ve worked hard to be more open, ultimately it’s our customers demand for innovation that drives us. And I wouldn’t want Flash to open up and lose that ability to innovate. It wouldn’t be fair to our customers.

I’d love to see Flash do a better job of integrating with the browser and the semantic web. And I hope HTML5 pushes us more in that direction. I disagree that the era of plug-ins is coming to a close because I think there will always be web developers who want to do a little bit more and have the same experience across devices and platforms. Adobe can move at that speed while still offering tools for web developers of all stripes because both HTML and Flash are baked into our DNA. I genuinely wish for a more open dialogue between standards organizations and the Flash community. Unfortunately it seems like a “my way or the highway” attitude when it comes to web standards. I can understand that to some degree, but I think the web would be a much better place of everyone took a deep breath and took another look at Flash’s deficiencies and it’s strengths. With that as a starting point, I think there could be some very valuable conversations about how Flash can do more to support standards while still catering to customers who want new features.

Show Comments

Hide Comments

Comments are closed.