A new version of the ECMAScript language is expected to be released in December 2009

Aug 7, 2009 15:56 GMT  ·  By

Commonly referred to as JavaScript, the ECMAScript scripting language has been an important milestone in the development of web applications since its launch in 1996. ECMA International announced last year the release of ECMAScript 4th Edition, a new and greatly improved version of the ten-year-old ECMA 3rd edition. This changed when, in a recent press release, ECMA International, the non-profit organization that is in charge of all ECMAScript development, revealed that all ECMAScript 4th Edition development had stopped and switched to the ECMAScript 5th Edition and ECMAScript Harmony projects.

This means that the long awaited version of JavaScript 2.0, considered by many industry developers to be the most important release since the Internet's birth has been again pushed back. Initially planned to be launched and standardized in the fall of 2008, it seems that ECMAScript 4 development has ignited some creative ideas that lead to a complete re-think of how the new version of JavaScript and ECMAScripts should work.

In April 2009, ECMA International retired the 4th Edition from development and re-assigned TC39 (development group) to the 5th Edition project. The 5th Edition spurred from disagreements inside the ECMASript 4 development group, which saw representatives from major companies like Microsoft, Yahoo and Mozilla trying to push a security and library update before the whole 4th edition would be complete.

This led to the independent developing of ECMAScript 3.1 language that was still faithful to many ECMAScript 4 semantics and syntax requirements, but focused more on interoperability options. This later version was renamed ECMAScript 5th Edition, and the old ECMAScript 4th Edition, which contained the main development of JavaScript 2.0, will bear the name Harmony for the moment or until it is rechristened as ECMAScript 6th Edition.

All development on ECMAScript 5 is finished, tests being conducted in the summer of 2009. Companies like Microsoft, Opera or Mozilla have been actively involved in the testing process inside the TC39 group, trying to ensure future compatibilities between code and browser. ECMAScript 5 language specifications can be found here. After the testing process, the language will be submitted to approval to the ECMA International General Assembly and will enter the standardization process at ISO/IEC until December 2009.

Regarding the release of ECMAScript 5, Brendan Eich, Mozilla CTO and creator of the JavaScript language, said that “The Fifth Edition of ECMAScript makes real improvements based on browser innovation and collaboration in Ecma, which provides a solid foundation for further work in future editions.” Microsoft’s ECMAScript architect, Allen Wirfs-Brock, stated that “We expect the Fifth Edition to benefit all web developers by helping improve browser interoperability and making enhanced scripting features broadly available.”

Meanwhile, due to this backtrack in the ECMA group, JavaScript 2.0 has been left for dead until the 5th Edition is finished. Previous 4th Edition language specifications will still be respected, assuring the fact that ECMAScript 3 will be a subset of the new JavaScript 2.0, minimizing browser incompatibilities.

With this unfortunate event, all the leaps in JavaScript 2.0 development and innovations brought to the ECMA language will be made public with the release of ECMAScript 5, unfortunately leaving only some crumbs to the release of JavaScript 2.0, whenever that may be.

Some of the proposed new features for JavaScript 2.0 are as follows:

OOP

Classes will be fully supported with all the inheritance properties found in classic Java or C# languages. Even if JavaScript supported OOP before this release, thanks to prototypical inheritances found in objects, it often produced unexpected or unwanted results. This is considered the main addition to JavaScript 2.0 programming.

Strong Typing

JavaScript will be strong typed. This translates into the fact that any declaration will be enforced, and not coerced to the platform engine. This closely resembles ActionScript 3.0 syntax.

Compile Time Type Checking

Developers will be able to request a “strict” mode compilation that will perform several tasks and security checks before executing the code. Some of these verifications perform static type checking, illegal constant assignment, check the validity of comparisons and reference name look-ups.

Namespaces

Namespaces have been until now formed of global objects containing all the necessary data needed for a JS application. JavaScript 2.0 will introduce a dedicated pre-existing global object just for this action, so the precious data won't get lost or destroyed so easily.

Constants

The “const” declaration has been introduced just to store constants that previously relied on “var” declarations that could easily have been re-written by accident.

Program Units

This requirement was introduced to minimize bandwidth usage. A program unit in JavaScript 2.0 will store amounts of code that won't be used until called upon. It works similarly to an ActionScript 3.0 library.

More specifications can be found in the initial JavaScript 2.0 (ECMAScript 4th Edition) proposed language overview. A future release date for ECMAScript Harmony has not been unveiled by ECMA International.