[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