[TLUG]: ECMAScript ("Javascript") Version 4 - FALSE ALARM

Dave Herman dherman at ccs.neu.edu
Sat Oct 27 13:53:50 PDT 2007


Mark,

> I was not at the Ajax Experience conference, but I just spent the last
> week at OOPSLA. Everyone at OOPSLA I ran into who knows about the ES4
> proposal hates it. The general sense is that they think it's a train
> wreck. But there's a feeling of resignation: Yet another runaway
> standards process to oppress us. The people expressing this opinion
> include some extremely good programming language folks with great
> track records and reputations.

I've been to lots of conferences with reputable PL people too, and I 
know that they are no more immune to rumor than other venues. All it 
takes is one person to start spreading FUD about a technology for it to 
become the buzz and ultimately accepted "wisdom." I was not at OOPSLA, 
so I couldn't say for sure what people are really saying. But just to 
hear that unnamed people were bad-mouthing ES4 contributes nothing but 
bad blood to the conversation. Please stick to arguments about 
substance. Your expertise in language design is well known and *more* 
than welcome here, Mark; I would love to hear you weigh in on content.

> I did raise with people the notion that the new larger language be
> given a different name. One reason that C managed to stay small is
> that all those who wanted to grow it self-selected to grow C++
> instead. Likewise, the existence of Common Lisp probably helped
> protect the smallness of Scheme. Everyone I mentioned this to thought

The example of Scheme seems to contradict your point. Common Lisp grew 
out of an incumbent language, whereas Scheme came out of a separate 
rewrite of Lisp. As I understand it, Guy and Gerry designed Scheme for 
their own purposes largely out of whole cloth. Note also that Scheme too 
has had to grow as it has matured. In fact, Guy Steele gave a famous 
talk--at OOPSLA, no less--on the importance of language growth.

At any rate, Scheme and C++ are languages with different ecosystems from 
JavaScript. JavaScript exists first and foremost on the web. It's the 
only open-standard engine behind the platform of the web. Brendan Eich 
has repeatedly explained why a multiplicity of languages on the web is 
infeasible, e.g. at the URL Jeff Dyer linked to 
(http://lambda-the-ultimate.org/node/2504). So obstructing the progress 
of JS and consequently the open web in the name of preserving the purity 
of a "platonic ideal" of JavaScript strikes me as either a mistake of 
philosophical extremism, a convenient cover for conflicted business 
interests, or a combination of both.

> this name change would be a good idea, and would help protect the
> continued evolution of the language we now call Javascript, i.e.,
> EcmaScript 262 Edition 3. Whatever its flaws or virtues might be, the
> ES4 proposal is simply a very different language. Please let's be
> honest about that and change its name.

The language is without doubt much larger than it was. Part of this is 
driven by a desire to provide conveniences that in ES3 people are forced 
to simulate, often at cost to both performance and clarity: classes via 
prototypes, local bindings and private members via closures, etc. And 
part of this is driven by a need for language features with tighter 
guarantees; ES3 features such as the prototype system, global object, 
with-bindings, eval, etc. are famously anathema to abstraction, 
reasoning about code, and practical compiler optimization. So 
introducing new language features provides programmers the features they 
need and implementors greater flexibility in optimization, in order to 
keep JS competitive.

Finally, just to reiterate that the "it's a different language" charge 
glosses a critical aspect of the ES4 proposal, namely backwards 
compatibility. ES4 is not a new language. It is, as the overview 
describes, a significant evolution of ES3.

Dave



More information about the Es4-discuss mailing list