Почему четвертое издание ECMAScript было полностью отменено?

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

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

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

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

4 ответа

Решение

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

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

В основном, было много очень сильных мнений о том, как продвигать JavaScript, многие из которых были несовместимы, некоторые из которых были в основном собраны в то, что некоторые думали, что это будет 4-е издание, прежде чем все развалится (не в последнюю очередь из-за отсутствия поддержка со стороны некоторых важных разработчиков). Между тем, новая редакция стандарта была очень, очень запоздалой, и поэтому после долгих предварительных переговоров различные стороны собрались в Осло в июле 2008 года и согласовали дальнейшие действия (Брендан Айх [изобретатель JavaScript] позже назвал этот подход). " Гармония" при написании).

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

Если у вас есть свободные 55 минут на эту тему, посмотрите видео Дугласа Крокфорда: "Состояние и будущее ECMAScript" или стенограмму.

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

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

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

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

Другие вопросы по тегам