It occurs to me we're starting to go around in circles. The author suggests...

"To make it work in both Chrome and Firefox, we had to use sink.js, to abstract the differences between the audio APIs."

But isn't that exactly what Flash is? Yes sink.js would be an open solution but it would be an open solution based on proprietary APIs built into the browser (which themselves are open source but which can't be changed without approval of their governing bodies making them not that much different than Flash and its product teams)

So really we've traded Flash's native audio processing for a JavaScript solution using a Web API which in turn uses native APIs.

It seems like it would be more productive to force the browsers to develop one common API

> But isn't that exactly what Flash is?

JS and the various browser APIs for media come with the browser. Flash doesn't necessarily. You can count on Chrome and Firefox having a media API, but not Flash.

At this point, can I count on a user having Flash over Chrome or Firefox? Today, I'd say that a user having Flash is a more reliable bet than them having Chrome/Firefox. And if they have Chrome, they have Flash.

I get where you're going, but this conversation always gets dicey. People want Flash to die, so they sit around the campfire dreaming about why it is bad, but fail to see why it has succeeded thus far.

If we really want Flash to die, we should be concentrating on advancing the standard (or abandon the slow-moving committees involved).

Instead, this rhetoric of how Flash performs, or its inherit proprietary format gets brought up. Over and over. Ad nauseum.

And yet Flash – today – outperforms the alternatives in almost every realm of multimedia. Audio API, Camera support, 3D/vector drawing, video decoding, licensing, streaming.

Drama and vilification won't change the fact that I still can't allow a user to upload a video with a webcam using standard web technologies – probably not until 2020 (or whatever other gratuitously pushed off date it may be). I still can't reliably build a highly interactive, full-width experience without the browser having a fit.

This is the reality.

The debate isn't about whether Flash is more capable than HTML5 - more whether HTML5 is a better 'model' than Flash and when I say better I mean that 1. It is not owned by any one company and 2. You can view the source.

Viewing the source has been fundamental to the evolution of the web and it will be fundamental going forward - with Flash you can't do it. Not to mention that Flash's sand-boxed implementation doesn't play nicely with other HTML elements. (Try manipulating Flash video with Canvas).

But what the author is really talking about is changing the process of establishing standards - bottom up rather than top down. Give us, the developers the basic building blocks and we will build the rest. It should become obvious then what to implement as a standard, if anything.

I recently read Paul Graham's Hackers and Painters and although I certainly don't agree with all he says, one paragraph stood out:

"Let yourself be second-guessed. When you make any tool, people use it in ways you didn't intend, and this is especially true of a highly articulated tool like a programming language. Many a hacker will want to tweak your semantic model in a way that you never imagined. I say let them. Give the programmer access to as much internal stuff as you can."

Adobe sits and thinks about what the next steps are for Flash and web standards organizations sit and think about how to replicate what Flash does – understand the demand cycle.

My point isn't that HTML5 sucks, it's that people see it as better than Flash – but it isn't, sadly. That isn't an evangelistic statement, it is a factual one. To push forward, we can't be ignorant. We (as a community) have to look at what Flash does and take it for HTML5 and then come back to the table at least as often as Adobe. Otherwise, Flash will always be better.

The point is both Adobe and the W3C are guessing. Think how much faster we could advance if it was put in the hands of the community. A community that constantly implements, gets feedback, re-implements, collaborates. You only have to look at three.js (https://github.com/mrdoob/three.js/) and similar to get an idea of what can be built on a low-level API.

[Edit: guessing, not second-guessing]