Monday, February 01, 2010

What if Flash became an open standard?

John Gruber's excelent Daring Fireball blog has an article entitled What if Flash Were an Open Standard?. In it, he cites a Dave Winer article, which (among other things) proposes that Adobe open up Flash for all to support and implement

Gruber rejects that possibility, writing:

That’d be an interesting move, and it would certainly shake things up. But what if the source code to Flash Player is — as many would wager — a huge steaming pile of convoluted C++ horseshit? It’s sort of like what if Microsoft open-sourced the Internet Explorer rendering engine. It’s not like anyone who is now using WebKit or Gecko would switch to that just because it was opened — or that WebKit, Mozilla, and Opera would suddenly be obligated to or even interested in adopting IE-specific web features.

I think this makes a strong point, but it should be noted that this wouldn't be the first time. When Netscape decided to release their code into open source, forming the Mozilla project, that code was also a tangled mess and very difficult to maintain. But there was a hard-core team of developers dedicated to improving it, and they did just that. They ripped out and replaced most of Netscape's own rendering code, creating the Gecko engine instead. They replaced the UI code with the Chrome/XUL system that allows almost infinite flexibility with the UI skins, etc.

I think that for something as popular as Flash, the open source community would make a similar effort to improve Adobe's code, eventually producing something with more features, more utility, more speed, and better maintainability.

As for Apple, it could choose to be a part of such development, or it could choose to strike out on its own, using the specs of the SWF format. Apple could develop its own SWF player in the way it feels is best, either releasing the code to open source or keeping the source closed.

In theory, Apple could do this today, since Adobe already publishes the SWF file format spec, but to do this now would be a losing proposition for Apple. Today, Adobe doesn't release these specs until after they ship new versions of Flash, so Apple would forever be playing catch-up. And Adobe is not going to document their bugs - places where they violate their own standard and may or may not ever get around to fixing the code.

But if flash becomes an open standard, then the spec doesn't get modified behind Adobe's closed doors. Instead, there are working groups and mailing lists. Apple (and anyone else who is interested) can join the working group and stay informed about new features. Apple can ship new features in its SWF player at the same time Adobe and everybody else ships players with those features.

I think this can be a win-win scenario for everybody involved. Even Adobe - they might lose their Flash monopoly, but with Flash becoming almost entirely marginalized in the mobile device market, that monopoly is probably going to lose its value pretty soon anyway. Better to take a leadership role in the new market than to sink into oblivion with the old market.

No comments: