JavaScript is currently an important language so an impromptu talk at JSConf given by the creator of JavaScript, Brendan Eich, is not something to ignore.

JavaScript is currently an important language - possibly the most important of all the languages at this point in time. So an impromptu talk at JSConf given by the creator of JavaScript, Brendan Eich, is not something to ignore.

It was a last-minute affair and was within a planned talk by Jeremy Ashkenas titled "CoffeScript as a JS/Next", which is a fairly provocative title.

CoffeScript is a language built on top of JavaScript. It is supposed to be a better JavaScript and it compiles or should that be transpiles to JavaScript so that it runs on all modern browsers without the need for an upgrade. This is all great but "JS/Next" is a bold claim.

It seems to have been enough to provoke Brendan Eich to take to the stage and say some words about project Harmony or Ecma TC39 which is supposed to eventually develop into ECMAScript 6th edition. He said some interesting things:

JS developers sometimes seem afraid of the future, specifically of what browser vendors and Ecma TC39 might do to them!

The basic idea seems to be a call to arms to make design of a language by committee more responsive to the community. By using CoffeeScript developers can form preferences for language features and make their wishes known - presumably before it is all too late.

Why does the community matter? One good reason is this: communities facing harsh survival tests (as JS’s has) reward merit better than committees operating under competitive and time pressures.

He also stated that Harmony would role out specifications so that browser manufacturers could start to build the new stuff in as soon as possible. He also provided a slide which lists the expected features in the next version of ECMAScript:

Later in the talk he expanded on ideas that are most probably in the next ECMAScript and those that on the horizon. Many of the changes are syntactic but there are also some deep semantic changes proposed:

I advocated strongly for standardizing prototypal inheritance a la CoffeeScript’s class , super , and @ syntactic sugar.

In fact much of the argument for the next version of ECMAScript is strongly supportive of the case for CoffeScript being the next version of JavaScript - and of course as its implemented as a transpiler no revolution is needed.

He also reserved some harsh words for Google's Traceur project:

Open-source early, tell your TC39 colleagues your plans and intentions, invite others to join you. Don’t seed the googlecode project with all-Google-employee committers, work for months in relative secrecy, and then go open.

Despites all of the praise for CoffeScript the final conclusion is:

a transpiler (syntax only or mostly) or true compiler/runtime targeting JS (new semantics too) is ultimately not enough. Harmony proposals need to be implemented in several engines, ideally including V8 ...

The future of JavaScript looks good as long as the committee listens to its audience and implements a logical consistent language and of course actually agrees on a standard. The last thing we need is a repeat of the ECMAScript 4 fiasco.

More Information:

http://brendaneich.com/2011/05/my-jsconf-us-presentation/

CoffeeScript

Related reading:

JavaScript inherits the earth