джава скрипт год создания

Язык программирования JavaScript: история, особенности, перспективы

джава скрипт год создания

Первые предпосылки для появления этого языка появились еще в 1992 году, когда была начата разработка скриптового встраиваемого языка Cmm (Си минус минус). Позже он был переименован в ScriptEase, так как название Си минус минус имело негативный оттенок. В целом. Перед тем, как язык обрел свое современное имя, его название менялось еще несколько раз.

В 1995 году Брендан Эйх получил задачу внедрить язык программирования в браузер Netscape. Изначально язык назывался Mocha, затем LiveScript. Наконец, он получил свое современное имя – JavaScript. Здесь разработчики пошли на хитрость. В то время, когда они занимались улучшением LiveScript, довольно большой популярностью пользовался язык Java. Для того, чтобы привлечь больше разработчиков для работы с новым языком, было решено использовать в его названии Java. В итоге получился JavaScript.

Последняя на сегодняшний день версия языка ES6 вышла в 2015 году. С ее появлением язык обрел вторую жизнь. Появились новые стандарты, а также возможность работы с константами. Претерпел изменения и сам код. Язык придерживается принципа сокращения кода при большей функциональности.

К основным особенностям этого языка программирования относятся:

Помимо этого, важной особенностью JavaScript является его развитая инфраструктура. На сегодняшний день разработчики могут работать с большим количеством библиотек и фреймворков (наиболее популярными из них являются React, Angular и Vue), несколькими сборщиками, вспомогательными библиотеками (например, Lodash) и генераторами статических сайтов.

Что касается сфер применения, в первую очередь, язык JavaScript широко используется в веб-разработке. Причем работает он в сочетании с HTML и CSS. С помощью JS можно создавать любые браузерные приложения. Например, калькулятор расчета кредита, который можно видеть на сайтах большинства банков, также создан с помощью JavaScript.

Причем вся визуальная часть этого калькулятора – это сочетание HTML+CSS. То есть кнопки, диаграммы, ползунки – это статические элементы. С помощью JS все то анимируется, а также проводятся все основные расчеты.

Еще один пример – форма подписки или регистрации. Она создана на HTML+CSS. Однако взаимодействие с сервером обеспечивается именно благодаря JS. Помимо этого, на языке JavaScript можно создавать следующие программы и приложения:

Источник

История создания Javascript

Brendan Eich (создатель языка JavaScript) между делом пишет о том, как язык создавался, и почему он такой, какой есть.

JS был обязан «выглядеть как Java», только поменьше, быть эдаким младшим братом-тупицей для Java. Кроме того, он должен был быть написан за 10 дней, а иначе мы бы имели что-то похуже JS.

что-то вроде PHP, только еще хуже. Его босс Netcsape быстро «зарубил» (в июле 1995, если мне не изменяет память; я сдлелал JS в начале/середине мая), т.к. это был уже третий язык после Java и JS. Было и так трудно обосновать то, что у нас 2 новых языка программирования для web.

В то время мы должны были двигаться очень быстро, т.к. знали, что Microsoft идет за нами.

Считайте, что JavaScript (пожалуйста, только не «JScript») спас вас от VBScript.

10 дней на то, чтобы сделать лексер, парсер, компилятор в байткод (bytecode emitter), интерпретатор, встроенные классы и декомпилятор. Помощь была только с файлом jsdate.c — от Ken Smith из Netscape (который, по нашему излишне оптимистичному соглашению, склонировал java.util.Date — Y2K баги и т.д. Гослинг. ).

Простите, времени было мало для того, чтобы сделать правильную оптимизацию хвостовой рекурсии. 10 дней почти без сна, чтобы сделать JS с чистого листа, заставить его «выглядеть как Java» (я сделал, чтобы он выглядел как C), и тайком протащить туда его спасительные фишки: first class functions (замыкания сделал позже, но они были частью плана сразу) и прототипы (примерно как в языке Self).

I’ll do better in the next life.

Источник

JavaScript исполнилось 25 лет

4 декабря 2020 года JavaScript исполнилось 25 лет. Автор материала, перевод которого мы сегодня публикуем, Даниэль Адамс, говорит, что этот язык повлиял на её карьеру, а так же — на профессиональную деятельность многих программистов. JavaScript повлиял и на то, как обычные люди со всего мира пользуются веб-сайтами. Даниэль предлагает отпраздновать 25-летие JavaScript, вспомнив о 25 заметных событиях, которые сделали экосистему, сложившуюся вокруг этого языка, такой, какой она стала в наши дни.

джава скрипт год создания

▍1. Создание JavaScript

В 1995 году Брендану Эйху, программисту из компании Netscape, известной выпуском браузера Netscape Navigator, поручили создать скриптовый язык, который должен был выполняться на стороне клиента и хорошо стыковался бы с Java. Первая версия языка отличается от того JavaScript, который мы знаем и любим, но этот язык был создан за 10 дней и в нём уже присутствовали те возможности, вроде функций, являющихся объектами первого класса, которыми мы пользуемся до сих пор.

▍2. Выпуск стандарта ECMAScript

Несмотря на то, что к 1997 году JavaScript существовал уже два года, для того чтобы реализации JavaScript могли бы использоваться в различных браузерах, нужны были открытые стандарты этого языка. В 1997 компании Netscape и Microsoft объединились в рамках Ecma International для того чтобы стандартизировать язык. Это привело к появлению первой редакции стандарта ECMAScript.

▍3. В Internet Explorer появляется API XMLHTTP

Вероятно, кто-то ещё помнит о том, как теги iframe использовались для того чтобы, при выполнении запросов, не перезагружать страницы, просматриваемые пользователями. В марте 1999 года в Internet Explorer 5.0 появился браузерный API XMLHTTP, дающий разработчикам возможность выполнять загрузку данных в фоновом режиме.

▍4. У JavaScript появляется собственный формат представления данных

В 2001 году появился формат представления данных JSON (JavaScript Object Notation), описание которого можно найти на json.org. В 2006 году на всеобщее рассмотрение был вынесен проект RFC, в котором был описан синтаксис JSON, позволяющий организовывать обмен данными между различными приложениями. В частности, с использованием HTTP-запросов, необходимых для обеспечения работы веб-страниц. Формат JSON, благодаря своей простоте, стал весьма популярным и был стандартизирован (ECMA-404). Он широко используется и в наши дни.

▍5. Сдвиг в сторону AJAX

После того, как другие браузеры последовали за Inernet Explorer в деле поддержки фоновых запросов, позволяющих обновлять содержимое веб-страниц без их перезагрузки, появилось такое понятие, как AJAX (Asynchronous Javascript and XML, асинхронный JavaScript и XML). В сфере веб-разработки начался сдвиг в сторону использования асинхронных механизмов.

▍6. Выпуск первых «инструментов разработчика» в виде расширения для браузера

Браузеры становились всё сложнее. Поэтому появилась потребность в инструментах, которые могли бы помочь программистам при разработке клиентских приложений. В 2005 году был создан набор инструментов Firebug, предназначенный для отладки JavaScript-приложений в браузере Mozilla Firefox и представленный в виде расширения для браузера. Это был первый инструмент, дававший разработчикам возможность исследовать и отлаживать код прямо в браузере. Последняя версия Firebug вышла в 2017 году.

▍7. Выпуск библиотеки jQuery

Библиотеку jQuery можно признать пионером того явления, которое в наши дни называют «современной веб-разработкой». Она оказала влияние на множество библиотек и фреймворков, которыми мы пользуемся сегодня. На пике популярности этой библиотеки понятия «JavaScript-разработчик» и «jQuery-разработчик» были взаимозаменяемыми. Библиотека расширяет возможности JavaScript, упрощая создание одностраничных приложений, в которых производятся манипуляции с узлами DOM, обработка событий и многое другое.

▍8. Создание JavaScript-движка V8

По мере того, как веб-сайты превращались из обычных HTML-страниц в JavaScript-приложения, браузерам, в которых выполнялись эти приложения, крайне важно было развиваться в соответствующем направлении. В период между 2007 и 2010 годами вышли релизы многих браузеров, направленные на улучшение возможностей по выполнению JavaScript-кода. Когда был выпущен браузер Google Chrome, используемый в нём JavaScript-движок, V8, был выпущен в виде отдельного проекта. V8 — это, с его just-in-time-компилятором, знаковый проект в мире JavaScript. Этот движок нашёл применение не только в браузере Chrome, но и в других разработках, выступая в роли надёжной и быстрой среды выполнения JavaScript.

▍9. Выпуск первых «инструментов разработчика», встроенных в браузер

В браузере Chrome использовался не только движок V8, но и ещё одна инновация: инструменты разработчика, встроенные в браузер. В то время эти инструменты давали программистам не так много возможностей, в частности, позволяли исследовать элементы и работать с ресурсами. Но это, в сравнении с существующими на то время инструментами, был шаг вперёд. Эти инструменты оказали влияние на все те инструменты, которые используются в наши дни при создании браузерных приложений.

▍10. Проект CommonJS и попытка стандартизации JavaScript-модулей

Проект CommonJS представлял собой попытку найти способ разбиения JavaScript-кода, используемого за пределами браузера, на модули. Это позволило бы превратить скрипты, код которых содержался в одном большом файле, в наборы модулей. Модули CommonJS оказали влияние на систему модулей Node.js.

▍11. Проект Node.js и бэкенд-разработка на JavaScript

JavaScript получил широкое применение в качестве браузерного языка для разработки приложений задолго до того, как на этом языке стали создавать серверные программы. В 2009 году Райан Даль, сотрудник Joyent, представил на JSConf EU проект Node.js — асинхронную среду выполнения JavaScript, управляемую событиями.

▍12. Появление CoffeeScript — синтаксического «сахара» для JavaScript

CoffeeScript появился задолго до популяризации идеи расширения возможностей работы с типами в JavaScript. CoffeeScript — это язык программирования, созданный под влиянием Ruby, Python и Haskell, код, написанный на котором, компилировался в JavaScript. Компилятор был изначально написан на Ruby, потом — переписан на самом CoffeeScript, а значит, в итоге, был представлен JavaScript-кодом. CoffeeScript обрёл популярность благодаря тому, что облегчал работу программистов, давая им возможность пользоваться надёжными JavaScript-конструкциями.

▍13. У Node.js появляется первый менеджер пакетов

▍14. Состоялся первый выпуск Express

В 2010 году вышла первая версия фреймворка Express.js, создатели которого вдохновлялись идеями проекта Sinatra из мира Ruby. Express.js создавался как веб-фреймворк, обладающий минимальными необходимыми возможностями (маршрутизация, ПО промежуточного слоя, вспомогательные HTTP-механизмы) и не навязывающий разработчику некоего «правильного» подхода к разработке веб-сервера. Если верить данным GitHub, то можно сказать, что Express.js в наши дни является самым популярным JavaScript-фреймворком для серверной разработки.

▍15. Появились первые современные MVC-фреймворки, основанные на JavaScript

В то время, как набирала популярность серверная разработка на JavaScript, начали появляться MVC-фреймворки для фронтенд-разработки. Среди них стоит отметить Backbone.js и AngularJS (позже этот фреймворк переписали и переименовали в Angular). Началось практическое использование этих фреймворков, они полюбились JavaScript-разработчикам. Подход к фронтенд-разработке, используемый в Backbone.js, хорошо соответствовал нуждам описания бизнес-логики приложений. А AngularJS использовал декларативный подход, который позволял создавать надёжные браузерные проекты. Оба фреймворка повлияли на фреймворки и библиотеки для фронтенд-разработки, появившиеся позже. В частности, речь идёт о React, Ember.js и Vue.js.

▍16. Ember.js и концепция «соглашения превыше конфигурации»

В 2011 году появился форк проекта SproutCore, названный Ember.js. Ember.js предлагает JavaScript-разработчикам концепцию «соглашения превыше конфигурации» (convention over configuration). Благодаря этому им не нужно тратить время на размышления об архитектурных особенностях проектов, которые могут быть стандартизированы на уровне фреймворка.

▍17. Появление механизмов статической типизации, нацеленных на JavaScript-разработчиков

2012 год был годом статически типизированных языков. JavaScript, по своей природе, был до тех пор языком, в котором использовалась лишь динамическая типизация. От разработчиков не требовалось указывать типы данных при инициализации переменных и при работе с различными структурами данных. А потом появился TypeScript — расширение JavaScript, позволявшее программистам писать типизированный JavaScript-код, похожий, с синтаксической точки зрения, на JavaScript, и компилирующийся в обычный JavaScript. Компания Microsoft выпустила первый релиз TypeScript в октябре 2012.

▍18. Появление React

В 2013 году разработчик из Facebook Джордан Уолк представил миру новую JavaScript-библиотеку, в основе которой не лежала популярная в те времена концепция MVC, используемая во многих других веб-фреймворках. React — это библиотека, предназначенная для разработки приложений, основанных на компонентах, направленная на разработку интерфейсов (то есть реализующая возможности того, чему в аббревиатуре MVC соответствует буква «V»). Эта библиотека в наши дни является одним из самых популярных инструментов веб-разработки.

▍19. Проект Electron и разработка настольных приложений с использованием Node.js

Популярность Node.js и других технологий, использующих JavaScript, росла. Всё складывалось так, что вполне естественным оказалось бы использование этих технологий не только для разработки веб-проектов. В результате компания GitHub объединила Node.js и движок Chromium в проекте Electron, нацеленном на создание настольных приложений. Среди приложений, созданных на базе Electron, стоит упомянуть GitHub Desktop, Slack и Visual Studio Code.

▍20. Выпуск стандарта ES2015/ES6

В июне 2015 года вышла шестая версия стандарта ECMAScript. Выхода этого стандарта ждали многие JavaScript-разработчики. Он должен был включить в себя множество ценных возможностей. Среди них — экспорт и импорт модулей (ES-модули), объявление констант и многое другое. Предыдущая версия ECMAScript (ES5) была выпущена за 6 лет до этого, а работа над большинством новых возможностей велась с момента выхода стандарта ES3, выпущенного 16 годами ранее.

▍21. GraphQL становится альтернативой REST

В 2015 году компания Facebook выпустила опенсорсный проект GraphQL — язык запросов для создания API, упрощающий обмен данными между клиентами и серверами и позволяющий решить проблему различий между схемами данных, используемыми на серверах, и тем, какие именно данные требуются клиентам. Популярность GraphQL привела к тому, что был учреждён фонд GraphQL Foundation, нацеленный на развитие GraphQL.

▍22. Выход Node.js 4

В 2015 году в мире JavaScript-разработки произошло значительное событие, которое заключалось в том, что проект io.js снова стал единым целым с проектом Node.js. Всего год назад был создан форк Node.js, названный io.js. Сделано это было в попытке сократить длительность циклов релиза проекта. Когда io.js снова стал частью Node.js, уже вышла 3-я версия io.js. Поэтому, после объединения проектов, совершенно естественным был выход Node.js 4-й версии, в которой совместное существование двух проектов начиналось, так сказать, с чистого листа. После этого циклы релиза Node.js оказались согласованными с выпуском свежих версий движка V8.

▍23. Появление менеджера пакетов Yarn

Через несколько месяцев после печально известного инцидента с npm-пакетом left-pad был выпущен новый менеджер пакетов — Yarn. Этот менеджер пакетов был создан для того чтобы обеспечить более высокую однородность сред выполнения одного и того же кода на разных компьютерах. С выпуском Yarn в экосистеме JavaScript появилось такое понятие, как автоматически генерируемые lock-файлы, что повлияло на развитие других менеджеров пакетов, на то, как в них реализованы механизмы поддержки разработки JavaScript-проектов.

▍24. Node + JS = OpenJS

После того, как многие годы JS Foundation и Node.js Foundation работали сами по себе, было решено объединить эти две организации, создав новую — OpenJS Foundation. Её целью является расширение уровня взаимодействия технологий и создание единой площадки, поддерживающей развитие различных проектов в среде JavaScript-разработки.

▍25. Первый выпуск Deno наделал много шума

В этом году Райан Даль, создатель Node.js, представил миру Deno — среду для выполнения JavaScript- и TypeScript-кода, основанную, как и Node.js, на движке V8. Проект вызвал большой интерес сообщества веб-разработчиков. Этому способствовала популярность Node.js, и то, что в Deno имеется встроенная поддержка TypeScript.

Итоги

Хотя те 25 событий, о которых мы говорили, представляют собой заметные вехи истории JavaScript, помимо них вокруг этого языка происходило ещё очень много интересного и важного. Экосистема JavaScript попросту не существовала бы в её современном виде, если бы не все те силы, которые были приложены к развитию этой экосистемы разработчиками со всего мира. Каждый PR, каждое выступление на конференции, каждая новая публикация — всё это внесло вклад в развитие JavaScript. Поэтому мы благодарим всех, чьими силами этот язык стал тем, что он есть, и предлагаем вместе отправиться в светлое будущее JavaScript.

Какие события из истории JavaScript кажутся вам наиболее значительными, определившими современное состояние языка?

Источник

Краткая история JavaScript. Часть 2

Продолжение перевода статьи A Brief History of JavaScript, подготовленный отделом фронтенд-разработки компании Лайв Тайпинг. Первая часть закончилась на том, что в ноябре 1996 года язык JavaScript начали приводить к стандартам ECMA. С этих пор язык проходит по бумагам как ECMAScript, но в обыденной жизни все называют его по-прежнему. Читайте во второй части: версии ECMAScript, появление технологии AJAX, ActionScript и его влияние на Flash и путь к Гармонии.

джава скрипт год создания

ECMAScript 1 и 2: на пути к стандартизации

Первый стандарт ECMAScript был основан на версии JavaScript, входившей в состав Netscape Navigator 4 и не включал в себя важные особенности, такие как регулярные выражения, JSON, исключения и важные методы для встроенных объектов. Тем не менее, в браузере он работал намного лучше. Версия 1 была выпущена в июне 1997 года.

Обратите внимание, что наш простой тест прототипов и функций работает правильно. Над Netscape 4 была проделана огромная работа, и JavaScript получил от этого свою выгоду. Наш пример работает абсолютно так же, как он будет работать в любом современном браузере. Это очень важное достижение для первой версии стандарта.

Вторая версия, ECMAScript 2, была выпущена в июне 1998 года, чтобы исправить несостыковки между ECMA и стандартом ISO для JavaScript (ISO/IEC 16262) и не включала в себя никаких изменений самого языка.

Интересной особенностью этой версии JavaScript было то, что интерпретатор должен был самостоятельно решать, что делать с неотловленными ошибками (и в большинстве случаев оставленными как неклассифицированные). Причиной этому стало то, что исключения ещё не были частью языка на тот момент.

ECMAScript 3: первые большие изменения

Эта версия ECMAScript получила очень широкое распространение. Все крупные браузеры того времени поддерживали её и продолжали поддерживать в течение многих лет. Даже сегодня многие транспайлеры в качестве выходного языка могут указывать этот стандарт. Это сделало ECMAScript 3 фундаментом для многих библиотек, даже когда были выпущены более поздние версии стандарта.

Хоть JavaScript использовался практически повсеместно, он всё ещё оставался клиентским языком программирования. Многие из его нововведений позволили ему приблизиться к тому, чтобы вырваться из этой клетки.

Netscape Navigator 6, выпущенный в ноябре 2000 года, поддерживал ECMAScript 3. Спустя почти полтора года был выпущен Firefox, браузер, основанный на кодовой базе Netscape Navigator и также поддерживавший ECMAScript 3. Бок о бок с Internet Explorer эти браузеры делали всё возможное для дальнейшего роста и развития JavaScript.

Рождение AJAX

AJAX (asynchronous JavaScript and XML) — технология, появившаяся на свет в годы ECMAScript 3. Хоть она и не являлась частью стандарта, Microsoft встроила некоторые расширения для JavaScript в Internet Explorer 5. Одним из таких расширений была функция XMLHttpRequest в виде управляющего элемента ActiveX XMLHTTP. Эта функция позволяла браузеру выполнять асинхронные HTTP-запросы серверу, тем самым позволяя страницам обновляться на лету. Хотя само название AJAX было придумано значительно позже, сама техника активно использовалась в то время.

Впервые термин AJAX был использован Джесси Джеймсом Гарреттом в его статье.

Применение XMLHttpRequest оказалось успешным, и годами позже было стандартизировано группами WHATWG и W3C.

Постоянная эволюция функциональности, разработчики, вносящие что-то новое в язык и встраивающие эти новинки в свои браузеры, до сих пор являются основополагающими факторами в развитии JavaScript и связанных с ним стандартов, таких, как CSS и HTML. Связь между отдельными группами в те дни была очень слабая, что привело к задержкам и фрагментации. Честно говоря, в наши дни разработка JavaScript организована куда лучше благодаря процедурам, позволяющим заинтересованным группам вносить свои предложения.

Игры с Netscape Navigator 6

Эта версия поддерживает исключения — основная особенность, без которой страдали все предыдущие версии, что хорошо видно при попытке открыть Google. Невероятно, но даже сегодня Google, открытый в этой версии, представляет собой читаемую работающую страницу. Для контраста мы попробовали открыть Google при помощи Netscape Navigator 4 и получили неполный рендеринг и поехавшую разметку. Даже в те времена веб развивался стремительно.

Игры с Internet Explorer 5

Internet Explorer 5 также справился с современной версией Google. Тем не менее, существует ряд известных различий в плане реализации определённых возможностей между Internet Explorer и другими браузерами. Эти различия многие годы были настоящей болезнью, доводя веб-разработчиков до белого каления, так как им приходилось каждый раз дорабатывать код специально для пользователей Internet Explorer.

Например, чтобы получить доступ к объекту XMLHttpRequest в Internet Explorer 5 и 6, нужно было обратиться к ActiveX. В то же время другие браузеры обрабатывали его как нативный объект.

Несомненно, сама идея использования этого объекта появилась в Internet Explorer 5. Однако только в Internet Explorer 7 Microsoft начала следовать стандартам. Некоторые устаревшие сайты для правильной работы до сих пор требуют использования старых версий Internet Explorer.

ECMAScript 3.1 and 4: годы борьбы

К сожалению, следующие несколько лет не принесли JavaScript ничего хорошего. Вместе с началом работы над ECMAScript 4 в сообществе, разбившемся на группы, начались разногласия. Одна группа утверждала, что JavaScript необходимо сделать языком для разработки крупных приложений. Эта группа предлагала множество новых опций большого объёма, требовавших внесения кардинальных изменений. Другая группа находила подобный вектор развития недопустимым. Отсутствие компромиссов и сложность некоторых предлагавшихся улучшений отодвигали выход ECMAScript 4 всё дальше и дальше.

Работа над ECMAScript 4 началась вскоре после выхода третьей версии в 1999 году. Большое количество интересных нововведений обсуждалось в Netscape. Однако интерес к ним со временем иссяк, и в 2003 году работа над новой версией ECMAScript остановилась. Был выпущен промежуточный отчёт, и некоторые разработчики, такие, как Adobe (ActionScript) и Microsoft (JScript.NET) использовали его в качестве основы для собственных движков. В 2005 году AJAX и XMLHttpRequest смогли вновь разжечь интерес к новой версии JavaScript и TC-39 возобновила работу. Проходили годы и набор нововведений рос всё больше и больше. В самый разгар разработки ECMAScript 4 включал такие опции как:

Несмотря на гибкость и кажущуюся мощность, на практике ES3 оказывается совершенно непригодным для разработки программ большого объёма. Программы, написанные на ECMAScript, становятся крупнее и сложнее благодаря применению Ajax и повсеместному использованию ECMAScript в приложениях в качестве скриптового языка. Разработка больших программ может существенно выиграть благодаря таким нововведениям, как статическая проверка типов, скрытие имен, ранняя связка и прочим оптимизационным приёмам, которые отсутствуют в ES3. — ECMAScript 4 draft

Эта таблица может послужить интересным дополнением к истории. В ней отображены состояния различных дополнений и обсуждения групп, участвующих в разработке.

Комитет, разрабатывавший ECMAScript 4, включал в себя Adobe, Mozilla, Opera (неофициально) и Microsoft. Yahoo вошла в игру, когда большинство решений по стандартам и возможностям были уже приняты, прислав Дугласа Крокфорда, влиятельного JavaScript-разработчика, который тут же раскритиковал большинство новшеств, получив мощную поддержку со стороны представителя Microsoft.

Оказалось, что у представителя Microsoft были точно такие же сомнения — он тоже считал, что язык становится слишком большим и выходит из-под контроля. Он ничего не говорил до моего присоединения к группе, так как боялся, что если Microsoft попытается выразить эту точку зрения, её обвинят в антиконкурентном поведении. Учитывая поведение Microsoft в прошлом, можно сказать, что у него были причины этого бояться, и как выяснилось, не безосновательные. Однако я убедил его, что Microsoft должна поступить правильно, и он, в свою очередь, смог убедить Microsoft изменить свою позицию относительно ES4.- Douglas Crockford — The State and Future of JavaScript

То, что началось как сомнения, быстро переросло в сильную оппозицию к JavaScript. Microsoft наотрез отказывалась утверждать любую часть ECMAScript 4 и была готова к любым действиям, включая судебные тяжбы, чтобы не дать стандарту возможности быть утвержденным. К счастью, члены комитета смогли избежать судебных разбирательств. Однако из-за разногласий ECMASCript 4 продолжал топтаться на месте.

Microsoft хотела играть по-крупному. Люди в Microsoft собирались завалить комитет бумажной волокитой и начать подавать жалобы в различные инстанции. Я не хотел ничего такого. Мои разногласия с ES4 были исключительно техническими, и я хотел, чтобы они таковыми и оставались. Я хотел разобраться, как всё сделать правильно, поэтому я старался уменьшить напряжение. Тем не менее Microsoft заняли бескомпромиссную позицию, наотрез отказываясь принимать любую часть ES4, из-за чего комитет разбился на два лагеря. Хотя лично мне кажется, что это произошло потому, что команда ES4 не желала рассматривать альтернативные точки зрения. В тот момент комитет раздирали противоречия, и это было очень плохо, так как группа, занимающаяся стандартами, должна пребывать в состоянии полного согласия. Стандарты не должны быть противоречивыми. — Douglas Crockford. — The State and Future of JavaScript

Крокфорд выступил с идеей о создании более простого, уменьшенного набора опций для нового стандарта, такого, с которым все могли бы согласиться: никакого нового синтаксиса, только практичные улучшения, основанные на опыте использования языка. Результатом этого предложения стал стандарт, известный, как ECMAScript 3.1.

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

Окончательная точка в деле ECMAScript 4 была поставлена в 2008 году, в электронном письме Айка, в котором он подвёл итоги встречи в Осло, где обсуждалась дальнейшая судьба ECMAScript и будущее версий 3.1 и 4.

Решения, принятые на этой встрече:

Слово «Гармония», появившееся в перечисленных решениях, стало названием проекта в будущих версиях. Harmony станет альтернативой, с которой все будут согласны. После выхода ECMAScript 3.1 (в виде версии 5, как будет рассказано чуть ниже) ECMAScript Harmony стала тем местом, где обсуждаются все новые идеи относительно JavaScript.

ActionScript

ActionScript стал языком программирования, основанным на ранней версии ECMAScript 4. Adobe включил его в состав пакета инструментов для Flash-разработки, и это был единственный скриптовый язык, поддерживаемый этим пакетом. Благодаря этому языку Adobe выразила свою позицию относительно ECMAScript 4, впоследствии выпустив его open-source версию (Tamarin) в надежде ускорить разработку ECMAScript 4. Майк Чамберс, работник Adobe, выразил свою позицию по этому поводу:

ActionScript 3 никуда не денется, и мы не будем ничего из него убирать. Мы продолжим следить за развитием ECMAScript, делая всё возможное для дальнейшего развития интернета, как и прежде. — Mike Chamber’s blog

Разработчики ActionScript надеялись, что нововведения, использованные в этом языке, станут впоследствии частью ECMAScript. К сожалению, никто не обратил на них никакого внимания и ECMAScript 2015 был в большинстве своем несовместим с ActionScript.

Некоторые считали подобный ход попыткой Microsoft сохранить за собой контроль над языком и его реализациями. Единственным жизнеспособным движком для ECMAScript 4 на тот момент был Tamarin, поэтому Microsoft, занимавшая 80% рынка интернет-браузеров, могла продолжать использовать собственный движок без необходимости проводить дорогостоящую адаптацию под новый стандарт или пользоваться движком конкурента. Кто-то считал, что возражения Microsoft носили чисто технический характер, как у Yahoo. Движок Microsoft, JScript, на тот момент имел очень много отличий от других реализаций.

ActionScript по сегодняшний день остаётся языком для Flash, который начал терять популярность благодаря приходу HTML5.

ActionScript остаётся ярким примером того, как мог выглядеть ECMAScript 4, если бы он был реализован в популярных движках JavaScript:

Что такое E4X?

E4X — это название, которое получило расширение ECMAScript, выпущенное в годы разработки ECMAScript 4 (2004). Это название, стандартизированное в стандарте ECMA-357, расшифровывается, как ECMAScript for XML. E4X добавило в ECMAScript поддержку и отображение XML-содержимого. В E4X XML рассматривается как примитивный тип данных. Поначалу E4X получил поддержку крупных движков, таких, как SpiderMonkey, но затем был заброшен по причине низкой популярности и убран из 21 версии Firefox.

Кроме цифры 4 в названии, у E4X нет абcолютно ничего общего с ECMAScript 4.

Небольшой пример использования E4X:

Другие форматы данных, такие как JSON, пользовались значительно большей популярностью в сообществе JavaScript, поэтому E4X появился и исчез, не оставив практически никакого следа.

ECMAScript 5: перерождение JavaScript.

В 2008 году, после долгих боев, развернувшихся вокруг ECMAScript 4, сообщество сфокусировалось на работе над ECMAScript 3.1, отправив ECMAScript 4 на свалку. В 2009 году ECMAScript 3.1 был полностью завершён и одобрен всеми участниками комитета. Так как ECMAScript 4 считался своеобразным вариантом ECMAScript несмотря на отсутствие хоть какого-либо релиза, было решено переименовать ECMAScript 3.1 в ECMAScript 5, чтобы избежать недоразумений.

ECMAScript 5 стал одной из самых поддерживаемых версий JavaScript, став также целью компиляции многих транспайлеров. ECMAScript 5 получил полную поддержку в браузерах Firefox 4 (2011), Chrome 19 (2012), Safari 6 (2012), Opera 12.10 (2012) и Internet Explorer 10 (2012).

ECMAScript 5 был достаточно скромным улучшением ECMAScript 3, включавшим в себя:

ECMAScript 5 получил обновление в 2011 году под названием ECMAScript 5.1. Этот релиз вносил ясность в некоторые неоднозначные пункты стандарта, но никаких новых возможностей в нем не было. Все новые возможности были запланированы для следующего большого релиза ECMAScript.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *