Some public disagreement appears in the proposed evolution of JavaScript to a version currently codenamed ES4. The two blog post I am highlighting here (in chronological order) is that of Microsoft’s Wilson and Mozilla’s Eich. Kanaracus of IDG News post will give you the essential background to understands the disagreement.
There are a few interesting point. The first, a short one, being on Wilson’s claim that “It’s been pointed out that we haven’t made an alternate proposal”. Eich obviously begs to differ when he bring out the issue of ES3.1 proposal from Microsoft. Is that an ‘alternate proposal’? Especially when Eich claims that everyone is working with ES4 when Microsoft suddenlly comes up with ES3.1?
I am in no position to discuss on how the shape of things should be in ES4. However, as a web user and a software developer, here are the things I think is important for the next generation of Javascript:
- All browsers, especially Mozilla and IE, must support it fully. The haphazard Javascript support in previous release of IE shows the importance of this. I hope both sides learn this lesson and will come to a compromise.
- Evolution of a language, any language, should not be shy of including new things, even if it change the “character” of the language. C++ evolution sees it incorporating the Standard Template Library from HP. This is a major change for C++ because it ventured into the field of what is used to be defined as “libraries” for a programming language.
- Backward compatibility, while is a worthwhile goal, should not constrain the evolution of the language. Browsers can easily handle different, incompatible versions of the language. It is done everyday. The problem of non-compatibility for developer is usually overblown. As a developer, if you wish to take advantage of new features in the next evolution of a language, you always assume you will be breaking existing code and have to rewrite. That’s life.
- One should not be too worry about initial teething problems with a new version of language. It happens. It takes a few years before a particular version become stable and robust enough for developers to be able to depend on. All the time, minor amendments to the standards, known as maintenance will be carried out to clarify the situation. It acknowledges that no one get it correct the first time. It is true that if you add more meat to the language, the language will take more time to become stable. The question that should be asked is whether these additions are worthwhile and whether there is too many of them which will means stabilization takes too long.