Saturday, August 16, 2008

ECMAScript 4 breakup hurts (Adobe) Flash

Now that ECMAScript 4 is dead, the rationalizations begin, and Adobe is doing the breakup-was-a-good-thing speech.

The most common response goes something like this:

This doesn't affect ActionScript 3. If anything, this gives Adobe more freedom to innovate.

But that, quite frankly, is a total load of crap.

Adobe was a major force behind ECMAScript 4, and they've been banging the open source drum very loudly -- they even gave away the Tamarin VM in hopes that it would one day become the de facto implmentation.

Adobe was doing this for three reasons:

  1. Silence critics who disliked the Flash player for being proprietary.
  2. Become the market leader for the ECMAScript 4 language and VM.
  3. Gain support/contributions from a broader developer community.

So now that ECMAScript 4 has derailed, what is the impact on Adobe?

They gained some new developers who saw ActionScript 3 as a "real language," and they lost some existing developers/designers who think ActionScript 3 is too complex. Meanwhile, the rest of the Web shrugs its shoulders and continues its distrust of Adobe's proprietary Flash player. In short, they are back where they started.

Or as Hank Williams brilliatly puts it:

In essence, Adobe has shown up to the prom, but its date has stood it up. ActionScript is now not based on any standard. It is its own, proprietary, albeit open source language. Adobe is on its own island as the rest of the industry moved to some watered down version of what it could have been.

And yes, there are many things that Flash can do which are hard or impossible with open source web technologies. However, the same used to be true when comparing Windows and Linux on the desktop, but today Ubuntu is competing (and often winning) on: features, applications, sex appeal, and ease of use.

Eventually the open community wins because it has an limitless supply of free talent and a collective ability to filter the good ideas from the bad. Adobe can go off on its own and innovate like crazy, but their failure to align themselves with the standards community is going to hurt them in the long run.



tom - August 21st, 2008 3:46 pm

I think Flash's days are numbered, but not due to the derailed ES4 work. The new functionality and innovation appearing in the minority browsers is already giving developers an alternative to flash for some things, and the IE team's reawakening from its long slumber could seal the deal if they start implementing these features too in their run-up to better standards compliance (obviously nobody is holding their breath on that though).

Specifically I'm talking about SVG, CSS extensions, the canvas element, and video/audio elements. I'm not suggesting that those are as simple and integrated to use as flash, but the gap is narrowing very quickly.

But I really don't see the ES4 derailment hurting Adobe in any meaningful way for a while. Not with their huge market share at least. And their only real competition (except for the built-in stuff I mentioned above) is silverlight at this point, which sure ain't any more "open" than flash.

two bit fool - August 25th, 2008 8:47 pm

@tom: There are two reasons that I expect Microsoft will continue to lag behind on the standards necessary to put Flash out of business:

  1. Silverlight -- Any work to improve IE's support of web standards may compete with (or at least, distract from) work on Silverlight.
  2. Backwards Compatibility -- Microsoft learned a hard lesson with IE7, and the desire to "breaking the Web" again could dilute the support for standards.

Hopefully the push from things like Firefox will eventually put enough pressure on them to force the change. But I wonder who will deliver the first serious blow to Flash's dominance: wide adoption of more powerful web standards, or Silverlight?

Thursday, August 14, 2008

ECMAScript v4 derails…finally

ECMAScript v4 was bound to fail. It was making a drastic departure from the current standard, ECMAScript v3, by adopting ideas like: packages, namespaces, early binding, and optional static typing.

ECMAScript is best known for the Javascript dialect, a language that is availble in nearly every web browser. Javascript is powerful because it has a relatively simple syntax, and the flexibility of a dynamic language. The low barrier to entry has turned it into one of the most widespread lanugages in use today. It seems that the pioneers of ECMAScript v4 had lost sight of those benefits as they tried to turn ECMAScript into a "real" progamming langauge.

For whatever reason, Adobe (the company that ate Macromedia) drank the ES4 (ECMAScript v4) cool-aid, and they created AS3 (ActionScript v3). AS3 is based on early drafts of ES4, and it is the language for the latest versions of the ubuquitous Flash player. Adobe open sourced their Tamarin VM to help encourage the adoption of ES3. Then they marketed their "more mature" language so aggressively that Flash developers started convincing themselves that they were better off with static typing and no eval.

When I first tried Flex, Adobe's poster child of AS3, I was stunned. It felt like I had stepped back into the early days of Java. I was contantly fighting the syntax and the framework, interrupted by frequent "breaks" as I waited for the lathargic compiler. After countless expeditions into the nested maze of class documentation, I gave one final laugh at its ridculous verbosity, and walked away.  Some other Flash developers noticed the same trend, and they wondered if Adobe was headed in the wrong direction.

Now, much to my relief, the ECMAScript folks have come to their senses, leaving Adobe out in the cold. So, while the ES4 fans look for a scapegoat, the rest of us will breath a sigh of relief and go back to using programming languages that get out of our way.