В декабре 1995 года Netscape Communications и Sun Microsystems совместно анонсировали новый язык веб-сценариев — JavaScript. Этот «прототип в хакерском стиле» родился в Netscape и был написан всего за 10 дней. Сейчас он стал одним из самых важных языков программирования в Интернете.

Хотя исходная версия того года не появлялась в бета-версии Netscape Navigator до сентября того же года и была официально выпущена как версия 1.0 в марте 1996 года, сегодня почти все веб-сайты с клиентскими сценариями используют ее, и JavaScript фактически стал «языком по умолчанию» в интерактивном онлайн-мире.

В Netscape инженеру Брендану Эйху было поручено разработать «облегченный язык сценариев», который позволил бы веб-дизайнерам и непрофессиональным программистам быстро приступить к работе и добавлять интерактивные эффекты к изначально статическим веб-страницам. Внутренний прототип, который он завершил в мае 1995 года, намеренно приблизился к популярной в то время Java с точки зрения синтаксиса и внешнего вида, чтобы удовлетворить рыночные соображения руководства. Однако внутренний механизм в значительной степени основывался на его любимых идеях наследования прототипов Scheme и Self, образуя структуру, которая полностью отличалась от традиционных объектно-ориентированных языков. В течение следующего года язык продолжал формироваться в виде поспешных расширений и модификаций, открывая путь различным «причудам» и несоответствиям, которые долгое время преследовали разработчиков.

Чтобы продвигать экосистему, Netscape и Sun Microsystems привлекли 28 важных технологических компаний того времени для создания платформ JavaScript, включая такие имена, как Digital Equipment Corporation и Silicon Graphics, которые позже исчезли или были приобретены. Однако сам JavaScript пережил этот раунд отраслевых перестановок и стал одной из немногих технологий, которые выжили и продолжают развиваться. Примерно в 1996 году, жалуясь на частые изменения стандартов, Microsoft запустила собственную реализацию JScript в Internet Explorer. Это вызвало многолетний кошмар совместимости браузеров и заставило разработчиков переключаться между различными реализациями.

Процесс именования JavaScript представляет собой типичную «историю технологий и рыночного притяжения». Первоначально Эйх назвал прототип «Mocha», который позже был переименован в LiveScript в бета-версии Netscape 2.0. Он не назывался JavaScript, пока он не подписал лицензионное соглашение с Sun Microsystems. Намерение состояло в том, чтобы воспользоваться популярностью Java в то время и заявить о себе как о «веб-партнере Java». Такое наименование проложило путь к тридцатилетней путанице: технически Java — это статически типизированный язык, основанный на классах, а JavaScript — это динамически типизированный язык, основанный на прототипах, и эти два языка гораздо менее тесно связаны, чем может показаться их названия.

В июне 1997 года международная организация ECMA стандартизировала этот язык как ECMAScript, что ознаменовало настоящий вход JavaScript на путь стандартизации. Однако в последующие годы, когда на рынке доминировал Internet Explorer, инновации в браузерах застопорились, а развитие самого языка пришло в упадок. Лишь примерно в 2005 году развитие технологии AJAX заставило разработчиков осознать, что «подобные приложениям» веб-страницы, которые могут обновлять контент без обновления всей страницы, открывают новую форму продукта. В 2009 году родился Node.js, распространивший JavaScript на серверную часть, официально преодолев воображаемую границу «вы можете запускать сценарии только в браузере».

В 2020-е годы экосистема разработки вокруг JavaScript распространилась практически на все формы программного обеспечения, такие как интерфейсное, серверное, мобильное и настольное. Различные опросы показывают, что он уже много лет входит в число наиболее часто используемых языков программирования в мире, его используют более 60% разработчиков. TypeScript, который добавляет к нему статические типы, также быстро набирает популярность и стал первым выбором для многих крупномасштабных проектов. С помощью таких фреймворков, как React Native, Electron и Node.js, код JavaScript может появляться в мобильных приложениях, настольном программном обеспечении, веб-сайтах и ​​облачной инфраструктуре. В центре регистрации пакетов npm скопились миллионы модулей, образовав беспрецедентный «рынок сборки кода».

По мере того как его влияние расширяется, споры вокруг самого названия «JavaScript» также усиливаются. Поскольку Sun Microsystems была приобретена Oracle, торговая марка «JavaScript» в конечном итоге перешла в имя Oracle, но компания так и не создала на ее основе конкретного продукта. В последние годы разработчики в лице Брендана Эйха и основателя Node.js Райана Даля начали публичные совместные письма и судебные иски. Они полагают, что Oracle уже давно не использует этот товарный знак и что название носит весьма общий характер. Они надеются «освободить» его от коммерческих товарных знаков, чтобы сообщество могло свободно использовать такие названия, как «Конференция JavaScript» и «Спецификация JavaScript», без необходимости использовать компромиссные имена, такие как «JSConf».

По иронии судьбы, стандартное название «ECMAScript» с самого начала не понравилось многим основным участникам. Эйх однажды пошутил, что это название звучит как кожное заболевание, но что действительно остается в памяти публики, так это JavaScript, «рыночный продукт». В то же время Java-апплеты, на которые возлагались большие надежды и когда-то были популярны в браузерах, давно ушли из истории. JavaScript, который изначально считался «маленьким помощником по написанию сценариев», стал абсолютным героем современных веб-страниц и приложений. Оглядываясь назад тридцать лет спустя, можно увидеть, что эта техническая история, начавшаяся с «Прототипа 10-дневного хакера» и смешанная с недоразумениями в названиях и спорами о стандартах, в конечном итоге сформировала то, как работает Интернет сегодня. С днем ​​рождения, JavaScript.