Hacker News new | ask | show | jobs
by amadiver 5634 days ago
Let's elevate this conversation beyond the usual conventional wisdom and rhetoric: Flash is not "demonstrably, prima facie" closed. Really, `tptacek`, it takes almost no independent search to come to a murkier conclusion.

Interestingly, while the Flash IDE is most definitely closed, the SWF file format and the tools to create SWFs... it's not so cut and dry. Here's the (Flash 10 SWF Spec)[http://www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf...]

There's probably a bunch of stuff left out that'd make implementation difficult, but that hasn't stopped:

(GORDON)[https://github.com/tobeytailor/gordon] -- an open source Flash runtime written in pure JavaScript . It only supports up to Flash v. 2; almost useless, but interesting.

Here's the (Flex SDK)[http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK] which includes the Flex framework, and a partially open source SWF compiler.

Apparently, Flex compiler isn't totally open source because of patents concerning audio and video codecs (I'm recalling this off the top of my head; please verify).

Here's (Tamarin)[http://www.mozilla.org/projects/tamarin/]. It's a VM for EcmaScript. It's been rolled into SpiderMonkey, the JS engine for FireFox, I think. It includes support for packages, namespaces, classes, and optional strict typing of variables. Really useful stuff for interactive devs that, unfortunately, hasn't been widely adopted.

Adobe contributes to WebKit on behalf of Flash & Air; I don't know what their contributions have been/how useful they are, though.

I'm a professional interactive dev, and I specialize in Flash, so you might conclude that I'd be biased, and I wouldn't blame you at all. However, as a Flash dev, I'm familiar with the non-marketed vectors of the Flash environment. Take that as you will.

We're geeks: let's all invest a little time to investigate the rhetoric. If you really don't like Flash, pick another reason: there are many ;)

4 comments

Isn't the "closed" vs. "open" status of Flash a total red herring? Flash is a browser plugin that any browser maker can choose to support or not to support. Google is arguing that a specified standard should use something more "open".

In other words, I have a hard time seeing how bundling a plugin and not supporting a proprietary codec that is vying to be part of a new standard is hypocritical at all.

And that above all seems to be the most important part of Gruber's "argument".

edit: minor grammatical correction

Give me a break. Flash is even less "open" than Microsoft Office. Both have published portions of their formats and semantics. But Microsoft Office at least has credible (if inferior) alternative implementations. What's the credible alternative to Adobe's Flash runtime?

And who gives a sh!t if Adobe makes contributions to open source? Contributions to open source don't make Flash open source.

Then by your definition Java is as closed as Microsoft Office?

ActionScript and Java are both published standards. Both have a canonical implementation which dominate distribution. Both are used as web plugins. Both standards are controlled by a single corporate entity.

Flash and Java are still free for end users and developers to use and distribute (alternative implementations are handled differently by Oracle & Adobe though).

The same can not be said for H.264. If i as a developer build an app that uses H.264 i have 0 confidence that i will not be sued in the future.

Sure ActionScript is an open standard, but Flash is not. The file format has been published, but has the actual swf format (including its streaming protocols) been ratified by an independent standards body? If so, which one?

Flash's file formats are well-documented, but Adobe decides how it evolves. I can write my own Flash player today, but Adobe might decide tomorrow that they're going to completely change Flash 11's format so that my player is suddenly useless for any new content. They might have even decided it already, and after a year of development, the first I find out about it is on release day. Anyone who's invested time and effort into implementing my player in their software is suddenly screwed until I support the new format (which, because of things like proprietary streaming protocols, I might never be able to do).

This is actually the same problem with WebM. The source code is open, but it's not a community project in the way that something like Apache or PHP is. Google is the one in control, and this is Google's standard. If they're interested in openness, are they going to be submitting WebM to a standards body? Because unless there's a published standard that everyone (including Google) has to adhere to, WebM is even worse than H.264 because there's no guarantee that the money you've spent today will bring you anything tomorrow.

OpenJDK? GCJ?
No Java implementation is unencumbered as Google is discovering with Dalvik (http://gigaom.com/2010/10/05/google-seeks-dismissal-of-oracl... ), and as the Apache foundation has finally resigned themselves to with the ironically named Harmony (https://blogs.apache.org/foundation/entry/the_asf_resigns_fr... ).
OpenJDK is the Sun (now Oracle) controlled distribution under open source terms. GCJ (which isn't really a "Java" as you'd normally think of it) was put on the backburner by RedHat once OpenJDK became available.
I would gladly accept an OpenFlash, even if the code is from Adobe, at least I would know what exactly I'm running on my machine.
I need a Flex developer to do some freelance work for me. Do you have any contact info? There isn't any listed in your profile. Sorry that this is off-topic, I just really need a Flex guy before the other lady gets a Flex guy and gets the Flex contract before me.
Well said.