Follow Slashdot stories on Twitter


Forgot your password?
Programming IT Technology

ECMAScript 4.0 Is Dead 168

TopSpin writes "Brendan Eich, creator of the JavaScript programming language, has announced that ECMA Technical Committee 39 has abandoned the proposed ECMAScript 4.0 language specification in favor of a more limited specification dubbed 'Harmony,' or ECMAScript 3.1. A split has existed among the members of this committee, including Adobe and Microsoft, regarding the future of what most of us know as JavaScript. Adobe had been promulgating their ActionScript 3 language as the next ECMAScript 4.0 proposal. As some point out, the split that has prevented this may be the result of Microsoft's interests. What does the future hold for Mozilla's Tamarin Project, based on Adobe's open source ActionScript virtual machine?"
This discussion has been archived. No new comments can be posted.

ECMAScript 4.0 Is Dead

Comments Filter:
  • by jfclavette ( 961511 ) on Saturday August 16, 2008 @01:25PM (#24627355)

    ECMA Script 3.11 for workgroups.

    The joke works this time !

    • by BPPG ( 1181851 )
      I dunno, After going from 4.0 to 3.1, 3.11 sounds more like a step backwards. Or forwards?
    • Re: (Score:3, Funny)

      by mangu ( 126918 )

      ECMA Script 3.11 for workgroups.
      The joke works this time !

      Dude, that joke is so 1993!

      The current version is going from 4.0 to 3.5.9

  • ES4 not dead (Score:5, Informative)

    by omfgnosis ( 963606 ) on Saturday August 16, 2008 @01:28PM (#24627383)

    It's not dead. There will eventually be a Fourth Edition of ECMAScript, it just isn't the focus now. The ES4 proposal wasn't ever enshrined as the actual Fourth Edition either.

    I was really skeptical about the concessions made by the ES4 side before I listened to some of their rationale; it wasn't so much concessions to the 3.1 side, it was that the things they were dropping didn't adequately solve the problems they were put in to solve.

    There's a great talk about it here: []

    • by Yvan256 ( 722131 )

      And it wants to go for a walk.

    • by Z00L00K ( 682162 )

      And notice that the adoption of scripting of web pages are slow in order to allow the web pages to be useful even on older browsers.

      Most of the functionality in JavaScript 1.5 is sufficient for what you normally want to do.

      The only problem is that JavaScript/ECMAScript from a language point of view isn't really good. A strongly statically typed script language would have been better since it would have allowed the developers to catch a lot of bugs that now occasionally blows up in the face of the users.

      • Re:ES4 not dead (Score:5, Insightful)

        by rycamor ( 194164 ) on Saturday August 16, 2008 @04:06PM (#24628565)

        The only problem is that JavaScript/ECMAScript from a language point of view isn't really good. A strongly statically typed script language would have been better since it would have allowed the developers to catch a lot of bugs that now occasionally blows up in the face of the users.

        That would be the worst possible thing to happen to Javascript. I know, I know... let's not get into a religious war over static/dynamic typing. There are valid points for each in different contexts, but a language in Javascript's problem domain is probably one of the worst contexts for static typing.

        Keeping the language small, clean and simple should be the priorities. If you want Java in the browser, well... that's already available.

    • Original post says

      abandoned the proposed ECMAScript 4.0 language specification in favor of a more limited specification dubbed 'Harmony,' or ECMAScript 3.1.

      That is wrong, ES3.1 is the smaller increment and repair of the current third standard, and "Harmony" is new features beyond that. Doug Crockford, who seemed opposed to much of ES4, wrote:

      Some of the features that were in ES4 were reasonable, so a new project, called Harmony, is starting which will look at adapting the best of ES4 on top of

  • by QuietLagoon ( 813062 ) on Saturday August 16, 2008 @01:30PM (#24627395)
    What is needed in the JavaScript world is not more features, but more consistency of implementation across the various browsers.

    It is good to see the standards committee taking a breather from major new features, and instead focusing upon the alignment of behavior of functionality across the various browsers.

    Hopefully, there will be a robust and rigorous compliance test suite as a deliverable of this standards process.

    • by Goyuix ( 698012 ) on Saturday August 16, 2008 @01:33PM (#24627427) Homepage

      I would disagree (to some degree) that more features are in fact needed. For example, E4X (and a native XML doc object) being standardized in the browsers would be a huge benefit.

      That being said, I think that a lot of the feature bloat going into the proposed v4 was really not all that great. I think this is generally a step in the right direction.

      • by hedwards ( 940851 ) on Saturday August 16, 2008 @02:06PM (#24627653)

        Quite so, a lack of standardization amongst the implementations has been a serious problem for years. Allowing developers to use the entire spec as is without fear of problems going between browsers would be a huge step forward for JavaScript.

        Perhaps add in a few fixes for annoying parts of the language and similar, but overall if it's just made to be consistent across browsers, that would go a long ways.

        • YES! But the next revision...

          1) They NEED to release a long list of test cases that can be run against implementations.

          2) How about having toString() output JSON? (at least specify exactly what it should output.)

          If anything new:

          Access methods for Object():
          Allows a function to monitor read/write/exec of an object's properties (EXTREMELY useful for client side patching of implementation bugs.)

          A Console object loosely modeled after FireBug with a focus on unit testing. Implementation optional; b

      • by pembo13 ( 770295 ) on Saturday August 16, 2008 @02:54PM (#24628001) Homepage
        I would ask for a safe JSON parser as well as I prefer JSON to XML (which is quickly becoming overused)
    • by omfgnosis ( 963606 ) on Saturday August 16, 2008 @01:34PM (#24627437)

      "What is needed in the JavaScript world is not more features, but more consistency of implementation across the various browsers."

      With the exception of a few later-added methods (on Array for example), that's already there. The inconsistency is in the DOM, and that's not something ECMA covers.

      • by Phroggy ( 441 )

        Most implementations of JavaScript allow an extra comma at the end of a list. It's very handy when you've got a long list of stuff that you're rearranging periodically. But once you've finished development and everything works... then you discover that in some browsers, your page doesn't work, because in those browsers, an extra comma at the end of a list is illegal.

        I think Internet Explorer and Opera were the two I had trouble with, while Firefox and Safari worked fine.

    • I know of two other projects known as Harmony. One was an attempt to reimplement Qt, to allow KDE to be open source and remove the need for GNOME (Trolltech effectively killed it be releasing Qt under the GPL and removing most of the need for it). The other is an open source J2SE implementation. Harmony sounds like a great name for causing confusion.
    • > What is needed in the JavaScript world is not more
      > features, but more consistency of implementation
      > across the various browsers.

      While I agree with you about the need for greater consistency of implementation, I don't expect that will ever happen. Microsoft does not want that to happen; and will do all it can to prevent cross-platform and cross-browser adherence to agreed standards where those standards will reduce its monopoly position - even to the extent of hijacking standardisation processes

  • by joe 155 ( 937621 ) on Saturday August 16, 2008 @01:38PM (#24627467) Journal
    Brendan Eich may claim it to be dead, but I'd really rather wait for Netcraft to confirm it before actually basing any decisions on this news...
  • by kevin_conaway ( 585204 ) on Saturday August 16, 2008 @01:57PM (#24627573) Homepage

    I invite everyone to read Douglas Crockford's latest post on the YUI blog entitled: The Only Thing We Have To Fear Is Premature Standardization []

    He gives some insight into how ES4 got to where it is today and its impact on standards in general

    • Re: (Score:2, Insightful)

      by lysse ( 516445 )

      This was the sentence of Crockford's post that really leapt out at me:

      It went off the rails when people started to just make new stuff up.

      That's generally true of standards committees. When they're documenting existing practices and seeking consensus and convergence between them, they're in their element. When they decide they can start inventing, rather than consolidating, they lose the plot altogether...

      • Re: (Score:3, Informative)

        by omfgnosis ( 963606 )

        That line was about HTML5, which is absolutely ridiculous. The things that the WHATWG and W3C have added to the HTML5 proposal are one or both of the following:
        - formalized semantics already informally in use as classes and ids (like the section and nav tags);
        - behaviors already in use, drastically simplified (like Web Forms 2.0).

        They didn't really "just make new stuff up", they're making the language and environment much more powerful, with real world use in mind. Both types of feature additions make devel

        • Re: (Score:2, Insightful)

          by lysse ( 516445 )

          That line was about HTML 5

          If you disagree with Crockford's opinions, the appropriate person to argue with is Crockford. I pulled out a quote to make a general point, one with which Crockford might not even agree, yet you don't seem to be too interested in talking to me.

          Rest assured, the feeling is mutual.

  • Long live ECMAscript 5.0!

  • What a damn shame (Score:4, Insightful)

    by Stan Vassilev ( 939229 ) on Saturday August 16, 2008 @02:17PM (#24627741)

    Such a damn shame to let ECMAScript edition 4 go in this way.

    The small shame is for Adobe's efforts, who entered the ECMA standards body to contribute, donated the entire engine to Mozilla and plenty of other efforts to get this going. But AS3/Flash will not be affected in a big way from this.

    The web community as a whole will be. That's where the big shame is: for all of us, web developers. I see that packages, namespaces, classes and early binding are out, likely forever.

    Classes are not "sugar", we do need those paradigms when creating bigger applications, because they are more rigid, more readable, more maintainable, understandable. I love lambdas, prototypes and all that, but that's the lower level, the implementation inside a class, inside a package. Those are not interchangable paradigms.

    ES4 and AS3 have managed to add those higher constructs to the language, while maintaining full compatibility with all flexible features of ES3 (the JavaScript currently used in browsers).

    The reasoning behind dropping all constructs appears to be the preconceived notion that JavaScript must exist in the form of disparate text files loosely connected to each other, something that doesn't scale to bigger efforts at all (and which makes Flash much more viable for such deployment), hence packages and early binding are out. What a mistake.

    Who's to say we won't see JAR-like environment where bigger libraries can be compressed together, and some preprocessing can be done to ease the load on the client CPU/bandwidth? I've been praying we get such deployment option soon as a modern web application typically has to download a ton of CSS/JS/image files to build an average GUI nowadays. Why isn't this the focus of ECMA's efforts, but instead the focus is to maintain the status quo and reject us basics that have proven themselves in time to work well in all environments out there.

    If you doubt this would work, look no further than Java/Flash applets distributed over the web in this fashion (and Flash is very widely used nowadays).

    What ECMA has achieved with their decision, is to basically stagnate the browser environment, and empower third-party cross-browser plugins to eat more from the advanced web application market share, because Adobe's Flash, Microsoft's Silverlight are not even thinking of dropping their mature OOP features, just because ECMA said we don't need them.

    • Re: (Score:2, Informative)

      by DCstewieG ( 824956 )

      With a good build/deployment script you can combine all of your CSS and JS files together, giving the advantage of better compression and less HTTP requests. If you have it set up in that way, you can split your script into as many files as you want.

      Images are a bit different, you can't do much outside of spriting where you can.

      This is not to say a JAR equivalent wouldn't be preferred, just that there are things you can do today.

      • You could actually incorporate a sprite building tool into a build/deployment script.

        That would be a very nice addition to any JS UI toolkit.

        It would take all the images (assuming they are of the same type...PNG gets my vote) and put them into a large image sprite... while adjusting all CSS and JS to use the new image.

        Not an easy task i think... but interesting from an optimization POV anyways.

    • ... of how Microsoft seems to prefer to win through destruction of others rather than production of their own.

      Not that we need another example. How many have we had already? Does anybody doubt?
    • Classes are syntatic sugar. That's what the working group found, when it discovered that most class-centric features can be boiled down to simpler APIs such as .freeze(), .defineProperty(), &c., all of which are being implemented in ES3.1. Classes, then, would only be user interface to what can already be implemented using these features.

      ES-Harmony is about standardizing new features that already work in (three out of four) major browsers, without changing the syntax of the language. Brendan Eich of Moz

    • Re: (Score:3, Informative)

      by Maian ( 887886 )

      Seriously, RTFA.

      This thread's title is totally misleading. In fact, the summary is wrong. ES Harmony is NOT ES3.1. And of course, there's the anti-MS slant as usual, but no mention of Yahoo, which was also against ES4. Good ol' /.

      So just in case you're too lazy to read the article, here's a quick summary:

      ES Harmony is just an ES4 that the ES 3.1 guys agreed to work on after ES3.1 is out the door, while the ES4 guys agreed to work together with the ES3.1 guys on ES3.1. So ES Harmony (which could be ES4 o

    • by drew ( 2081 )

      I've played around a bit with AS3, and what I've found so far are a lot more annoyances than any useful additions. More importantly, it is not compatible with JS 1.5. In my experience so far, classes are only really "necessary" in so far as people whose first experience with OOP was C++/Java/C# don't seem to be willing to learn anything else. I've worked on many large projects written in JavaScript, and while there are a lot of annoyances that appear in JavaScript in large applications, all of them are e

  • as i do, about all the different dhtml and javascript implementations across different browsers, be very scared

    here is a vision of the future where different browsers use different script languages

    its as if internet explorer never decided to support javascript in the mid1990s but still gained massive market share, forcing us in the industry to code for sites in javascript and vbscript


    • by Locutus ( 9039 )

      and this should not surprise anyone. Cross platform technologies are a threat to Windows and since over 80% of Microsofts profits come from Windows, cross platform technologies are a threat to them. So don't wonder why Microsoft keeps pushing stuff which only works on Windows or pushes for things which slow down adaption for open standards.


  • A real pity (Score:5, Insightful)

    by shutdown -p now ( 807394 ) on Saturday August 16, 2008 @02:38PM (#24627883) Journal
    ES4, as proposed, was destined to become a truly beautiful language, applicable for far more than its present Web scripting role. It was something I was actually looking forward to. And now - they've essentially codified the status of ES as the "Web scripting language", and discarded all the "too hard" stuff from the spec because it didn't fit the role. Which is quite surprising, since, given the popularity of GWT, one would think that ES3 implementations do lack something that people want.

    Oh well; Microsoft scores one here, considering that Silverlight 2.0 will be scriptable using Python and Ruby out of the box.

    By the way, the whole fuss about MS being behind this is pretty stupid and unfounded. MS was actually one to jump on the ES4 bandwagon early, along with Adobe - their early implementation of it was called JScript.NET, first released in 2002 with .NET Framework 1.0, and it does in fact still ship with all versions of .NET, and is an officially supported .NET language. They certainly wouldn't have any trouble extending it to the more recent spec, should it become standard. Now, I guess it will just be quietly dropped in the next version of the framework.

    • by Tacvek ( 948259 )

      I agree that packages are not generally useful for the web, but why not keep it as a language feature. Mandate that a parser accept it, but perhaps only mandate that core packages be supported, and that an implementation does not need to provide a means to add additional packages.

      I really don't understand the AS 3.0's "namespace" feature. That looks like access specifiers to me.

      The packages feature sounds more like C++'s namespaces to me. (Although C++ classes are also (effectively) namespaces, to the point

  • Although JavaScript is not very good as an application language, it can do some really neat things which makes it very interesting to language nerds which is why it is so popular.

    One thing is that functions are also objects which means they can be returned and taken as parameters by other functions. This is called lambda coding. Function pointers do not allow you do to quite the same thing since they can't be dynamically generated and modified. It makes certain kinds of mathematical programming very easy

    • Re: (Score:3, Interesting)

      by Z00L00K ( 682162 )

      JavaScript is popular only because it exists in almost every browser since a long time ago. This means that if you code something for a browser in JavaScript you know that it has a reasonable chance to work for the most commonly used browsers.

      The use of JavaScript outside the environment of browsers is very limited, and exists only in specialized applications where it may be useful to have a script language. But then it competes with other script languages like TCL/Tk.

      • Re: (Score:3, Insightful)

        by rycamor ( 194164 )

        In my case, I really didn't START to like Javascript until I began to read up on it's functional capabilities.

        I think there is more to Javascript's popularity than what you say. It is actually a fairly nice little language, and hopefully when a few annoyances are cleaned up in version 2.0 it will be used outside the browser more and more. In fact, anyone who has done some serious Mozilla application programming with XUL realizes that there is no reason Javascript must be restrained to a web browser context

        • Re: (Score:2, Insightful)

          by LowlyWorm ( 966676 )
          I agree but its not just its functional capabilities. It has a really nice (if limited) syntax. True, it is in many ways just a knockoff of C or C++ but that, to me, is part of its appeal. It is far less cumbersome than either and that makes it fun.
    • I think you are confusing a few things. Lambda calculus is a simple universal model of computing invented by Church. A lambda expression can reference variables explicitly inside its scope ('bound') or outside ('unbound'). By performing a beta reduction, you explicitly bind a variable in a lambda expression. This is what the lambda operation in Lisp does.

      It sounds like you are confusing the fact that functions are objects, and the fact that functions are closures. The fact that they are objects lets

      • Re: (Score:2, Interesting)

        by Anonymous Coward

        I think I get what you're saying but the difference between function having closures and functions being objects, but I just intended to point out that unlike JavaScript, Java, C, and C++ don't allow first class functions (which I refer to as lambda functions) though they do allow first class objects and function pointers though

        First class functions and Lambda functions in Lamda calculus are the same thing. I also used the calculation of a derivative using a lambda function as an example which is something

  • I'm waiting for Javafx. It looks pretty interesting to be honest.
  • I'd love to see Haxe ( [] ) supersede Ecmascript.

  • ecmascript schmecmascript already! There's be no fun in web development if you didn't have to try and hack around subtly different incompatible implementations of more-or-less thae same goddam thing.

All laws are simulations of reality. -- John C. Lilly