The discussion on the future of ECMAScript has been quite lively lately. Brendan Eich kicked off a flurry of posts about ECMAScript 4 and if that is the right path.

ECMAScript 4 is the next version of the standard which is implemented as JavaScript and JScript. With the publication of an overview of ECMAScript 4 Eich, the creator of JavaScript, has pushed forward the question of how will we get JavaScript to ECMAScript 4. While work on ECMAScript 4 is progressing, there are many who are unhappy with the specification, arguing that it is too much, too fast, and fails to address some of the critical issues of the language today.

After publishing the overview, Eich beat up on Microsoft for their lack of participation in the debate. That sparked a response from the JScript team at Microsoft, who are consolidating a list of all known divergences of JScript from the specification, as well as the generally accepted behavior of JavaScript. Microsoft believes that ECMAScript 4 is too big of a jump and Chris Wilson, Platform Architect for IE detailed his personal thoughts as well.

Douglas Crockford, a well respected JavaScript expert at Yahoo!, has reservations as well:

There are a lot of people who feel that JavaScript sucks, and are hopeful that the proposed language will suck less. My concern is that it may suck more. If new language is able to prove itself, then it may earn adoption. But it should not be standardized and displacing stable technology until it is proven.

Just browsing through the wiki shows a language which has prototypes, classes, multi-methods?, static types, dynamic types, etc, etc. This reminds an old guy like myself of other large design by committee languages such as PL/I, Algol 68 and ADA. These ambitious efforts all had smart people involved in the design and implementation but were unfortunately far too complex and came to the market too late. JS is intended to be a language for the people, not another language that only technical wizards can understand. If you are an Ajax developer or care about dynamic languages I suggest that it is time for you to speak up and help put ECMAScript 4 on a much less ambitious path than is currently being charted. Less is truly more when it comes to languages.

I've been using JavaScript since maybe 1996 and I think its a great language. The naysayers who are trying to hold it back think of JS/ES as an old language they don't want to have to worry about, but its relatively young as languages go.

If this was a new language like Ruby or Groovy, these changes would probably be seen as too little!

JavaScript spearheaded many of the dynamic features that are now considered cool in the latest batch of languages, but has long been seen as just a toy language only good enough for hacking around in browsers. Holding its development back would be unfair and pointless --- its perfectly easy to define which version of the language a .js is targeted against.

I've spent the last two years doing mostly JS work, and I have to admit I like it more than I thought I would. Coming from the warm & cozy Java world in to the harsh, everything-is-a-compromise world of JavaScript was a bit of a shock, but once I got past that I've been pretty happy with the language.

My question is this: do we need ES 4 right now? Can't we wait until the browsers and supportive technologies catch up to ES 3 before barreling ahead with a whole lot of new language features that would disrupt the momentum that JavaScript has (finally) got going for it?

It seems to me that a lot of the technologies surrounding JavaScript need some soak time -- not another dose of frills around the language basics. The Dojo Toolkit just shipped their 1.0 release last week; Prototype and the libraries built on top of it are mature and stable; Google Gears holds a lot of promise for moving the browsers towards a full-featured development platform; The browsers themselves are (ever so slowly) moving closer to actually meeting the EMCA 3 specification.

The smart thing would be to see how these technologies are adopted by developers in the real world first, and use those observations to help form the next version of the language. I am all for a lot of the proposed changes (namespaces and standardized OO syntax in particular), but the current 'extra' technologies already provide what I need right now, without having to wait for browser support.

I figure the ES4 will be 'approved' at some point next year, and no one will care. The browsers will continue their march towards ES3. Developers will be curious about ES4, but mostly for academic reasons.

1 - EcmaScript 4 will suck! Because it ignores the time concerns. Developers can handle functional aspects of languages in a useful and practical manner by now (See: Ruby, Java(anonymous things(functions, types, ...), C#(Closures, Anonymous Methods, Monads!(Yes in linq!)), on-the-horizon-things(Erlnag, Haskell, F#, Scala, ...)). So here we are missing the good things:2 - the power of JavaScript lies in it's functional aspects(Closures, First Class Functions) and very handy features like prototype-based inheritance(It is as practical as duck-typing in Ruby). So you are going to replace good features with bulky-stupid-coding-fashion of C#, Java and other pain-in-the-neck things.Now people are just starting to what JavaScript is! And I tell you it is a real ACCEPTABLE-LISP!Tell me; where you CAN define a beautiful DSL like JQuery?3 - Please forget about EcmaScript 4; And try to make more useful things like FireFox!Cheers!

InfoQ Weekly Newsletter

Join a community of over 250 K senior developers by signing up for our newsletter. If you are based in the EEA, please contact us so we can provide you with the protections afforded to you under EEA protection laws.

Is your profile up-to-date? Please take a moment to review and update.

Email Address

Note: If updating/changing your email, a validation request will be sent

Company name:

Keep current company name

Update Company name to:

Company role:

Keep current company role

Update company role to:

Company size:

Keep current company Size

Update company size to:

Country/Zone:

Keep current country/zone

Update country/zone to:

State/Province/Region:

Keep current state/province/region

Update state/province/region to:

Subscribe to our newsletter?

Subscribe to our architect newsletter?

Subscribe to our industry email notices?

You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.

We notice you're using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.