Почему ECMAScript 4-й выпуск был полностью пересмотрен?

Я искал некоторую информацию об утилизированном ECMAScript 4th Edition без особого успеха, даже на SO. Я знаю, что Mozilla JavaScript 1.7 реализовал многие (все?) Новые функции, предлагаемые в 4-м выпуске, и я подумал, что вспомнил хороший пост Джона Ресига, но теперь я не могу найти его в своем блоге.

В частности, я хочу знать, почему он был полностью пересмотрен в пользу ECMA-262 5th Edition и почему он не только улучшился. Некоторые из функций довольно круты, такие как генераторы, итераторы, let, новые операторы присваивания и (мое любимое) назначение деструктурирования.

Я знаю, что все эти функции просто бросают ошибки в браузерах с устаревшими реализациями ECMAScript, но почему бы не включить их в любом случае с информацией о том, что в один прекрасный день эти реализации будут немногочисленными и далеко друг от друга? Были ли и другие причины? Возможно, мы увидим, что некоторые из списанных функций появятся в будущем выпуске, или поставщики настолько боятся нарушения совместимости, что мы, вероятно, никогда не увидим таких улучшений в стандарте?

В стороне, было бы неплохо узнать некоторые мнения по этому вопросу, вы раздражены, чтобы увидеть некоторые функции, вырезанные из 5-го издания, или вы думаете, что это лучше? Стоит ли играть с реализацией ECMAScript 4?

Ответ 1

Проще говоря, не было ECMAScript 4th Edition. Из спецификация пятого издания:

Значительная работа была проделана для разработки четвертого издания ECMAScript. Хотя эта работа не была завершена и не опубликована в качестве четвертого издания ECMAScript, она сообщает о продолжении эволюции языка. Настоящее пятое издание ECMAScript (опубликовано как пятое издание ECMA-262) кодифицирует фактические интерпретации спецификации языка, которые стали распространены среди реализаций браузера и добавили поддержку новых функций, появившихся после публикации третьего издания.

В принципе, было много очень сильных мнений о том, как продвигать JavaScript вперед, многие из которых были несовместимы, некоторые из которых в основном собирали то, что, по их мнению, было бы четвертым изданием, прежде чем все развалилось (не в последнюю очередь из-за отсутствия поддержки некоторых важных разработчиков). Некоторые люди пошли своим путем, но новый выпуск стандарта был очень и очень просроченным, и поэтому Брендан Эйч (изобретатель JavaScript), ECMA и широкий круг участников собрались вместе и попытались разобраться. И ужасно застопорился над некоторыми особенностями, пока, в конце концов, Эих не смог заручиться помощью "гармония" .

Гармония отложила некоторые вещи, положила некоторые вещи полностью на стол навсегда (пространства имен, пакеты, раннее связывание) и, что важно, позволило комитету двигаться вперед с первым обновлением спецификации с 1999 года.

Ответ 3

В основном это стало кухонной раковиной со слишком многими функциями, которые должны быть реализованы.

Ответ 4

Было несколько обсуждений в интервью Coders At Work, два из опрошенных были по разные стороны от этой проблемы.

Похоже, что дело дошло до фундаментальных разногласий относительно того, какой язык должен содержать между теми, кто работает над v4, и некоторыми другими уважаемыми членами сообщества.

(Кстати, я очень рекомендую эту книгу)