Can’t really get excited about Ecmascript enhancements. Can’t really get disappointed about them either. When it comes to Ecmascript enhancements, I’m all “it doesn’t really affect me much”.

There’s some tweets and such like about Ecmascript Harmony today. I also saw a nice demo of Ecmascript 1.7 goods today.

Really, I can’t get excited about future versions of Ecmascript and can’t get emotionally all in a tangle about the trials and tribulations of Ecmascript. I mean, Javascript is arguably the most popular language in the world, so it’s cool to know it’s maturing over time. But, you know, I’m only interested in learning about a language (version/dialect) when at least one of the following applies:

  • It can be used in practice, today.
  • Learning it will broaden my mind in some way.

Using it in practice, today? No.

New versions of Ecmascript cannot really be used today, not by me anyway. I mostly write public web apps and enterprise web apps, and in both cases, it’s essential to target Internet Explorer. Ecmascript version N is only worth learning when most of the world has abandoned every version of IE prior to that which supports version N. When you see a new specification being mooted, you have about 10 years of thinking music before the spec is actually released (2-4 years), integrated into all major browsers (0-5 years if ever), and moreover, previous versions have died out (5+ years).

Maybe as society accelerates to the singularity, these lengths will become shorter and you’ll be able to deploy a new version of Ecmascript three times a week. For now, though, it’s fairly pointless from a practical perspective. If you take an agile attitude, why bother investing the time and focusing on something that end up changing or being abandoned altogether?

Okay, this is exaggerated – there are people who can put in practice new versions fairly quickly. Firefox is not only quick to incorporate new versions of Ecmascript, but also happens to be a platform where browser-specific code is sometimes warranted. I refer to browser extensions (and, relatedly, Greasemonkey scripts). If you happen to be writing Firefox browser extensions, you might choose to use Ecmascript as soon as it’s baked into Firefox. You’ll still be breaking compatibility with previous versions, but Firefox users constantly update anyway. This will continue to be the case for as long as most global enterprises force their workers to install Firefox on the sly. Which will be a long time. So you can happily use the latest Ecmascript if you’re writing extensions.

There are also people targeting the Flash platform for whom all this stuff is more important today. Not me, not right now.

The other case, of course, is when you’re using Ecmascript outside of the browser. e.g. server-side Javascript (yum!). Entirely valid. But this is still rare.

Learning it will broaden my mind? Not much.

Javascript is a quite interesting language, so new features will be interesting too. But not hugely, since Javascript isn’t that different from other dynamic languages. And most Ecmascript enhancements are either trying to mould JS into Python or the Java/C++/C* OO model. So they’re not about creating interesting “native” features.

You’d be better off learning something completely different in order to expand your coding brain. Try one of these.

I mean, don’t get me wrong

Don’t get me wrong. The thought leaders need to be thinking about this stuff and making the long term efforts. But for the average Ajaxer on the street, it’s all thirsty fish in the desert sand.

Leave a Reply