many ideas are simple, some are brilliant, few are both

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.


6 Comments so far

  1. Nicolas - August 15th, 2008 2:23 am

    Just came across your blog and had a few interesting reads. I’m wondering why you are not revealing your identity. I couldn’t find your name, let alone an ‘about’ page. Who are you?

  2. Ben Clinkinbeard - August 15th, 2008 10:51 am

    Adobe is hardly left out in the cold here. This actually gives them more freedom to innovate, leaving AJAX even further in the dust of AS3/Flash Player in terms of capabilities. Sure, JS is easy to write but you simply cannot accomplish in a browser with JS what you can with AS in Flash Player.

  3. simple guy - August 16th, 2008 7:56 am

    Nicolas - I’m just another idiot with a computer, setting my half-formed opinions adrift in the ether. I feel like I should have some impressive explanation for why I didn’t just use my real name, but I don’t.

    “Simple guy” is just the alter ego that helps to insulate my future self from anything stupid I say, and knowing who I am in meatspace wouldn’t make a lick of difference to anyone.

    Anyway, thanks for stopping by. I really appreciate the comments; they help fuel my breakneck pace of one article per month.

  4. […] now that ECMAScript 4 has derailed, what is the impact on […]

  5. simple guy - August 16th, 2008 12:09 pm

    Ben - Your comment, and several recent blog posts inspired me to write another article on this. When you get a chance I would like to hear your comments on it:

    http://www.betterthansimple.com/blog/2008/08/16/ecmascript-4-breakup-hurts-adobe/

  6. ES standard, GXP, Other stuff | Deespatch - August 20th, 2008 11:52 am

    […] An eval()-fanatic […]

Leave a reply