JavaScript является самым широко используемым языком программирования. Для многих (включая меня) он является любимым языком. Сейчас JavaScript можно найти практически везде. Он используется на всех этапах разработки, от написания простейших скриптов для веб-страницы до программирования микроконтроллеров. Благодаря своей мощи и способности работать практически везде, JavaScript стал одним из самых необходимых навыков для современного разработчика. Понимание истории JavaScript может помочь понять его текущее состояние.

JavaScript получил свое начало в браузере. Все началось в мае 1995 года, тогда Интернет уже набирал популярность, но всемирная паутина была "статичной". Тогда нельзя было посмотреть фотографии милых котиков и видео собак, катающихся на скейтборде. Веб-страницы в основном представляли из себя текст с несколькими изображениями тут и там.

Первый веб-сайт

Все так бы и продолжалось, если бы компания Netscape Communications не создала первый коммерческий веб-браузер Netscape Navigator, который очень быстро стал хитом.

Netscape Navigator

Вскоре после его выхода Марк Андриссен, один из основателей Netscape и создатель первого веб-браузера Mosaic, подумал, что Интернет неплохо бы сделать более живым и динамичным. Он полагал, что в довесок к HTML нужен язык программирования, который может работать в браузере и добавлять небольшие функциональные возможности на веб-сайт. Например, реагировать на действия пользователя и вводить данные в режиме реального времени. И важно чтобы этот язык был доступен для непрофессиональных веб-дизайнеров и начинающих программистов.

Brendan Eich

Работу по созданию языка программирования для браузера была поручена инженеру Брендану Айку, который в то время был нанят Netscape для встраивания другого типа языка программирования, называемого Scheme, в их бразуер. Но прежде, чем он смог начать работу над этим проектом, Айк начал работу над новым языком. И всего за десять дней он спроектировал и создал новый язык программирования под названием Mocha. Вдохновение Айк черпал из таких языков программирования, как Self и Scheme. Объектно-ориентированный и основанный на прототипах язык программирования Self вдохновил прототипное наследование в JavaScript, а Scheme передал ему приемы функционального программирования. Был еще третий язык, у которого был позаимствован синтаксис, и кое-что еще.

В бета-версии Netscape Navigator 2.0, название языка было изменено на LiveScript. Вскоре после этого, в качестве маркетингового хода, руководство Netscape, решило заработать на успехе (хайпонуть, че уж тут скрывать) очень популярного на тот момент языка Java. LiveScript был официально переименован в JavaScript. Вот так! Java и JavaScript не связаны. Netscape просто хотели получить рекламное преимущество, использовав в названии языка слово Java. Так что не делайте ошибку, путая их, особенно на собеседовании.

Когда JavaScript был официально выпущен в Netscape Navigator, он мгновенно изменил правила игры. Конкурирующие браузеры не могли этого не заметить и не предложить свою собственную версию JavaScript. В частности, Microsoft хотела использовать язык программирования для своего браузера Internet Explorer. Поэтому они создали свою собственную реализацию JavaScript. Они назвали свою версию, JScript, так как имя JavaScript на тот момент уже было торговой маркой.

Internet Explorer

Несмотря на то, что JScript был реализацией JavaScript, языки имели некоторые различия. Эти различия очень затрудняли работу дизайнерам и разработчикам если те хотели, чтобы сайты одинаково работали в разных браузерах. Сайт, который работал в Netscape, мог вообще не работать в Internet Explorer и наоборот. Поэтому разработка сайта, который работал как в Netscape, так и в IE, стала чрезвычайно утомительной, трудоемкой и дорогой. Из-за этого JavaScript начал завоевывать репутацию проблемного языка, мешающего развитию веб-технологий.

Главная проблема заключалась в том, что в то время, не было никаких правил и рекомендаций, установленных для реализации JavaScript в браузерах. Поэтому в 1996 году Netscape решила стандартизировать JavaScript. Они представили JavaScript в организацию по стандартизации ECMA International для рассмотрения языка в качестве отраслевого стандарта.

ECMA International

ECMAScript стал официальным названием, используемым для обозначения версий языка. Язык был стандартизирован техническим комитетом ECMA, известным как TC39.

Стандарт ECMAScript открыл JavaScript для более широкой аудитории, сохраняя совместимость с другими реализациями языка. Более того у разработчиков появилось право голоса и возможность влиять на ход развития языка.

Первое издание ECMAScript было выпущено в 1997 году. Вскоре после этого были стандартизированы версии ECMAScript 2 и 3, которые привнесли в язык больше возможностей. Но после этого процесс развития и роста JavaScript становится немного сложным и трудным. Когда пришло время работать над ECMAScript 4, комитет TC39 не смог согласовать набор функций. К 2003 году из-за существенных различий, касающихся сложности языка и того, в каком направлении JavaScript должен был двигаться, работа комитета была прекращена, TC39 распался, а спецификация была заброшена. Многие из предложенных функций были полностью отброшены.

В течение многих лет в языке не было серьезных изменений и реального толчка для новой версии стандарта ECMAScript. Но в конце 2008 года комитет TC39 одумался и перегруппировался для работы над ECMAScript 3.1, который впоследствии был переименован в ECMAScript 5. ES5 представил ряд возможностей языка, включая поддержку JSON, getters и setters у объектов, а также новые методы массива, такие как filter, forEach и map. Прошло достаточно много времени перед тем, как ES5 стал полностью поддерживается во всех современных на тот момент браузерах.

Хотя ECMAScript 4 был заброшен, некоторые его функции в итоге попали в шестую редакцию JavaScript, ES6. ES6 разрабатывался в течение нескольких лет, он был крупнейшим обновлением языка и большой вехой в истории JavaScript. В язык были добавлены стрелочные функции, классы, модули, новые объекты и много чего еще. Когда ES6 была завершена в июне 2015 года, она официально стала называться ECMAScript 2015 или ES 2015.

Сегодня комитет ECMA TC39 по-прежнему отвечает за разработку спецификации и развитие языка, решая, какие функции будут добавлены в язык. Комитет TC39 состоит из представителей разных компаний, в том числе крупных разработчиков браузеров, таких как Microsoft, Google, Mozilla, Facebook и PayPal. Делегаты несут ответственность за создание, утверждение или отклонение предложений по расширению возможностей языка.

Этапы развития JavaScript

После выхода ES 2015 Комитет TC39 решил выпускать новые версии чаще и последовательнее. Таким образом, с 2016 года JavaScript продолжал развиваться год за годом с меньшими наборами нововведений. Новая версия ECMAScript выпускается каждый год с новыми функциями, которые готовы на тот момент. Версии стандарта называются ES2016, ES2017, ES2018, ES2019, ES2020 и ESNext для версий ECMAScript, которые еще не были выпущены.

История JavaScript на этом не заканчивается. Язык продолжает развиваться, и у нас с вами есть возможность наблюдать за его развитием, а кому-то даже и участвовать в нем.