Monday, October 29th, 2007

ECMAScript Edition 4: Brendan Speaks Out

Category: Editorial, JavaScript

>At one of the panels at last weeks Ajax Experience we talked at some length about ECMAScript Edition 4, the paper that was released, and the future of JavaScript.

Douglas Crockford has spoken up at all of our events about how he feels that ECMAScript Edition 4 is not JavaScript. In his mind it is too different a language, with too many experimental features, to be put out into a world that has JavaScript deployed everywhere.

With the release of the overview paper, some have been confused about what the paper really is. Is it the spec? No. Is it an official paper from the TG? No. It is an overview paper.

Brendan Eich wrote back to someone on the open mailing list:

As much as possible, those of us in Ecma TG1 actually working
productively on ES4 for over two consecutive years have made our work
and intentions known by means of this list, the http://ecmascript.org
site, the SML reference implementation, and blog posts and public
talks I’ve given.

In opposition, only Doug Crockford has spoken his mind forthrightly
in the last several months. Good for him (I’ll argue with his version
of the reality elsewhere), but shame on the biggest company involved,
which has not contributed at all in the open, instead leaving people
with wrong impressions about its commitment to ES4.

Many people don’t know where Microsoft stands, knowing only that it
contributed over the years to draft ES4 proposals, implemented a
variant of one such draft specification in JScript.NET, and had one
of its employees (Rok Yu) contributing to TG1 work, with his name on
E4X (ECMA-357) as well as ES3 and the 2003 interim ES4 draft report.
Indeed, up until early this year, the rest of us in TG1 had no clear
statement of dissent from Microsoft. So, who is not dealing
forthrightly or openly here?

To be more fair than the opponents of ES4-as-proposed have been, I’ll
add this obvious reassurance: any organization or person can change
position. Indeed one Microsoft rep confided to me that “we were
asleep!” about what was going on with Microsoft passively
participating in TG1 before this year. So let’s say there was no
duplicity, no playing along with the rest of TG1′s long-standing
work, only to reverse suddenly late in the process.

Nevertheless, standards do not require unanimity, and even Microsoft
loses sometimes. That’s life.

It looks like the community is definitely split on the new release, and I am sure it will get more and more fun as the spec gets released. Read the overview paper and stay informed.

Related Content:

19 Comments »

Comments feed TrackBack URI

With all due respect… JavaScript is cool because it’s simple. I hope you don’t ruin it…

Comment by Arthur Blake — October 29, 2007

Short presentation of the new features of ECMAScript v4: http://synodinos.wordpress.com/2007/10/26/new-age-javascript/

Comment by getter — October 29, 2007

Well they surely don´t want ruin it, perhaps rethink the strategy. But I also fear this will lead into the wrong direction.
I agree with Brendan, that this is out in the public for long, and objections could have been made earlier to start the discussion. It may have saved a lot of work if more people contributed earlier…

Comment by Frank Thuerigen — October 29, 2007

I love the changes in ES4. If you want simple Javascript, you can just continue using the same simple subset you have been using all this time. If you want to use new big-application features, you can. ES4 brings Javascript from a toy extension language to a serious, premiere development platform. Bravo!

Comment by Leo Lipelis — October 29, 2007

@Arthur… um, he (Brendan Eich) invented it! lol Thanks for the awesome post, this is just what I wanted to hear about ES4 — high level discussion of the details.

Comment by Mark Holton — October 29, 2007

I am well aware that Brendan invented JavaScript and hats off to him for that. I just would hate to see it turn into another C++ — simpler is better. Adding too many features can sometimes just give you (and more importantly, the masses of not so experienced programmers) more rope to hang yourself. A lot of people haven’t commented on ES4 up until now because they are just now becoming aware of it (afterall Ajax really has just exploded in the last couple of years…)

Comment by Arthur Blake — October 29, 2007

kind of looks like the difference between perl 5 and perl 6

Comment by /dev/urandom — October 29, 2007

For the record. i would love it if this turned into another C++. While the inexperienced can easily hang themselves, the experienced can do anything. Ease of programming is great, but it can tie your hands. We will always need something with the power of C++. It’s flexibility makes it harder to use, but that same flexibility gives the architect immense freedom… just the rantings of a C++ programmer.

Comment by Mike Hall — October 29, 2007

Putting “big application functions” that can “do anything” in what’s almost exclusively used inside a browser just kinda seems like shoving a Hemi in a golf cart.

Comment by user. — October 29, 2007

Like others have said: backwards-compatibility is the key. Though the language looks far more complex, web developers need not venture far outside the subset they’re familiar with.

In fact, I doubt many will. From my perspective, I can’t wait for the bug fixes and syntactic enhancements that will make my life easier: control over enumerability, iterator/generators, operator overloading, and so on.

The type annotations confuse the hell out of me, but they’re optional, so I won’t mess with them unless I need to compile to bytecode for, say, a mobile phone environment.

Comment by Andrew Dupont — October 29, 2007

I can’t resist.

@Leo: “S4 brings Javascript from a toy extension language to a serious, premiere development platform. Bravo!”

JavaScript has never been a toy language; just because it makes it really easy to do basic tasks does not make it a toy. Elegance with simplicity does not make it a toy. I’m personally watching people take this “toy” and do things with it on the order of great, flexible languages like LISP and Haskell while at the same time using it to emulate features that many from compiled worlds have come to rely on. How many languages can pull the type of chaining that jQuery and Prototype has? What about emulating namespaces and thereby isolating, on the fly, someone’s large code base from everyone else’s? What about the possibilities that JS closures offer? What about the ability to use boolean operators to define defaults? Object mutability? I can keep going…

You can point at various languages for each of these features, but how many bring them all together in a way that makes it easy for any motivated individual to understand and use quickly?

Calling it just a “toy” contributes to the vast misunderstanding that many have about the language. There are things that I can pull in JavaScript (and have) that would be a major PITA to pull in most other languages, and many of the features that it has (Function as data, anyone) are being added to the more strict compiled languages, simply because the people who create those languages recognize the power–not the simplicity but the power–that JS has.

Take a closer look. The more you dive into it, the more you come to understand how elegant the pure simplicity of the language structure is, and how liberating it can be.

Comment by Tom Trenka — October 29, 2007

Tom,

Javascript is a toy only in a certain sense. For example, there is no formal notion of a Javscript library that you can include. Using prototype inheritance is more verbose when it comes to typing it up than it has to be. There is no standard way to walk the prototype chain (pls correct me if I am wrong). Many people will say that static typing is needed for big apps (I am not 100% sold on that idea myself, but I’m throwing it in here anyway). There is no standard Javascript library.

So, it’s a toy in a sense that it lacks things we take for granted when we use “normal” non-extension languages (like packages and standard libraries).

You’re right that people have coded great things in Javascript. In that sense it’s definitely not a toy. But in that sense even toy toys are not toys, because they help kids learn how to think, and these kids later grow up to be engineers and so on. So even regular toys are serious business, and serious business is ultimately a toy. Everything depends on perspective.

Comment by Leo Lipelis — October 29, 2007

Leo,
Thanks for clarifying your position. There are those who think “JS is a toy” and dismiss it, and those who understand that it lacks features you might want to have from other languages. You obviously belong to the latter group–so your thoughts on v4 would definitely be a good thing :)

Comment by Tom Trenka — October 29, 2007

WRT to walking the prototype chain, no, you can’t so well; there are some constructs you can use (like instanceOf) but it’s not as direct as walking a real base hierarchy.

Comment by Tom Trenka — October 29, 2007

It seems I was lucky enough to capture the attention of Allen Wirfs-Brock from Microsoft and Brendan Eich from Mozilla on my blog at OpenAjax.Com
I will be setting up a more open forum/wiki so that the conversations can be tracked better. Feel free to cross post.
This may be THE most important discussion we have as web developers.
It is the most important topic for me – this is WHY I started OpenDomain: to engage Microsoft into the Open World.

Comment by Ric — October 29, 2007

Hmm… I don’t know why but my mind just came up with a vision of Mozilla + Adobe + maybe Opera or someone else, drafting a parallel evolution of Javascript, adding probably some features but not all.

Comment by Gonzalo — October 30, 2007

I will say that after doing a project in Action Script 3 (Almost ECMAScript 4), I really enjoyed it over standard browser JavaScript. The new features like optional static typing make it feel almost like Java but more nimble. Its kind of like people sat around and said, “how can we make it more like Java but better?”

Comment by Sam C — October 30, 2007

“more like Java but better”

Which many people (and I do work a lot with Java) would understand like “worse but better”.

Comment by Gonzalo — October 30, 2007

I am looking forward to some of the features in Javascript 4. While I understand the point that Javascript is approachable and that is a good thing, the problems that Javascript solves simply must be solved!

If there are easier solutions, then great! But if not, then we have to have something. Javascript as it stands now really does not allow for libraries or mash-ups in a safe way.

I also completely reject the supposition my Microsoft that people who want to do complicated things not do them in Javascript. The reality is that people are going to push the envelope on the client side using Javascript.

The language MUST grow and improve to meet these new demands.

I think it is a non-starter to create an entirely new language to meet these new demands. First off, what the heck does that mean? Javascript 4 is an incremental solution with specific, concrete features that can be added to the language. Talk about a new language is so unrelated as to make no sense at all.

Keep in mind that Java is already in the browsers and BASIC was put in IE. But the real action is in javascript. Given that track record, it makes a heck of a lot of sense to make a sequel to Javascript, rather than anything else.

Comment by Scott Schmitz — November 2, 2007

Leave a comment

You must be logged in to post a comment.