JavaScript rejects advancement in favour of appeasement

! Warning: this post hasn't been updated in over three years and so may contain out of date information.

ECMAScript 4 is dead. For reasons best  understood as the collective mediocrity that is any committee decision, JavaScript will not take the obvious next step forward and finally – years too late, but better late than never – embrace its own draft version 4 standard. Instead it will reject all that is good about ECMAScript 4 and instead settle for enhancements to the less than adequate ECMAScript 3.1 standard.

With the upcoming HTML 5 offering the chance for HTML/ JavaScript based RIAs to finally shine, and growing competition from Flash/ Flex, Silverlight and (maybe) JavaFX, there is a real need for JavaScript to change from the simplistic scripting toy language it currently is into a modern programming language. Sadly the powers that be in the JavaScript world don’t agree. The next version of JavaScript still won’t have real classes for example, instead classes will be a “syntactic sugar” fudge on top of the current messy template-based objects.

Of course this has major implications for Flash too. Its ActionScript 3 is a full implementation of the ECMAScript 4 standard. As this standard has effectively been killed, ActionScript 3 is no longer based on a standard. With the constraints of standard removed, ActionScript 4 may now hopefully implement many of the annoying “missing features” in ECMAScript, such as method and constructor overloading, private constructors and static classes. You never know, we might even get ActionScript generics now…