В JavaScript еще много чего не так.Вы не можете быть полностью обратно совместимыми с вещами, которые никогда не были полностью совместимы, когда они были свежими ... Скажем, длина массива [1,]
сообщается как 2
по крайней мере в более старых версиях Internet Explorer.
Самая большая ошибка JavaScript в том, что он поставляется с крошечной, неполной и в значительной степени непригодной для использования стандартной библиотекой.Вот почему все отказываются от использования jQuery, Dojo, Mochikit и т. Д. - они предлагают в основном функциональность, которая должна быть частью некоторой стандартной библиотеки, включенной в браузеры, а не распространяться в тысячах копий и версий.Именно это делает .NET и Java такими популярными: язык поставляется с разумной стандартной библиотекой.С C и C ++ вам нужно самим отыскивать симпатичные библиотеки (например, Boost).
Но, кроме этого, иногда обновляется стандарт ECMAScript.
Google также пытается это сделатьсмелый шаг вперед и переделать JavaScript немного более вменяемым способом.Усилия известны как Dart: http://www.dartlang.org/ Насколько я могу судить, Dart в основном использует синтаксис JavaScript за вычетом нескольких его особенностей.Кроме того, он также более приятен для виртуальной машины и, следовательно, скорее всего будет работать быстрее (если, конечно, вы не скомпилируете Dart в Javascript и не используете виртуальную машину JavaScript; она предлагается в качестве опции совместимости).Но, конечно, любому хардкорному энтузиасту JavaScript нацистов не понравится то, что претендует на звание лучшего, чем JavaScript.В то время как для меня они не заходят достаточно далеко.В частности, они все еще не предоставляют достаточно «classpath».