Странности синтаксиса, наследие спешки и десятилетия костылей не помешали JavaScript стать стандартом по умолчанию для всего веба.

Тридцать лет назад Netscape Communications и Sun Microsystems выпустили совместный пресс-релиз, в котором объявили о появлении JavaScript. Новый объектно-ориентированный скриптовый язык должен был сделать веб-страницы интерактивными и превратить тогда еще статичный Интернет в более живую среду. При этом сам язык родился буквально в авральном режиме: в мае 1995 года инженер Netscape Брендан Айк всего за десять дней набросал рабочий внутренний прототип.
Публично JavaScript появился только в сентябре 1995 года вместе с браузером Netscape 2.0, а версии 1.0 язык достиг в марте 1996 года. Сегодня потомок того самого десятидневного наброска работает примерно на 98,9 % сайтов, где используется клиентский код, и фактически стал главным языком веба. Он давно вышел за пределы браузера: на JavaScript пишут серверные приложения, мобильные программы, настольное ПО и даже прошивки для некоторых встраиваемых устройств. В отраслевых опросах JavaScript уже много лет подряд фигурирует среди самых часто используемых языков программирования.
Netscape изначально хотел получить легкий скриптовый язык, который позволил бы добавлять интерактивность на страницы и был бы понятен веб-дизайнерам и людям без классического программирования за плечами. Айк собирал JavaScript из разных идей. Внешне синтаксис напоминал популярный тогда Java, чтобы удовлетворить запросы руководства Netscape, но внутренне язык опирался на концепции Scheme, который Айк очень ценил, и Self, откуда пришла прототипная объектная модель.
Совместное продвижение JavaScript поддержали 28 крупных технологических компаний. Сегодня пресс-релиз декабря 1995 года читается почти как надгробная плита индустрии. Digital Equipment Corporation поглотила Compaq, которую затем купил HP. Silicon Graphics обанкротилась. Саму Netscape приобрел AOL и со временем фактически разобрал по частям. Sun Microsystems, который участвовал в создании JavaScript и владел Java, в 2010 году перешел к Oracle. JavaScript пережил всех.
История про "язык за десять дней" давно стала программирующим фольклором, но в таком виде сильно упрощает реальный процесс. За десять дней Айк сделал демонстрационный прототип, а не законченный продукт, и еще около года команда Netscape дорабатывала язык. Спешка обернулась странностями и непоследовательным поведением, о котором разработчики жалуются до сих пор. Изменений было так много, что к концу 1996 года они начали раздражать конкурентов. Сам Айк вспоминал, как Билл Гейтс ругался на то, что JavaScript все время меняется. Microsoft сделала свою реализацию под названием JScript для Internet Explorer, и на годы вперед веб-разработчики получили ад из несовместимых браузеров.
Название тоже пришлось не сразу. Внутренний прототип Айк назвал Mocha. Для бета-версии Netscape 2.0 в сентябре 1995 года язык переименовали в LiveScript. Название JavaScript появилось в декабре 1995 года, когда Netscape и Sun оформили лицензионное соглашение. Это было чисто маркетинговое решение, призванное поймать волну хайпа вокруг Java. В пресс-релизах JavaScript позиционировали как легкий клиентский спутник Java, которая должна была обслуживать крупные корпоративные приложения. Сооснователь Sun Билл Джой тогда говорил, что JavaScript станет самым эффективным способом соединить HTML-содержимое с апплетами Java.
Путаница между Java и JavaScript продолжается и по сей день. У них общее название, кое-какие синтаксические элементы и почти ничего общего по сути. Java, созданная Джеймсом Гослингом в Sun Microsystems, использует статическую типизацию и классическую объектную модель на классах. JavaScript опирается на динамическую типизацию и прототипное наследование. Кто-то на Stack Overflow сравнил разницу между ними с отношениями слов "car" и "carpet": звучат похоже, но это совершенно разные вещи.
В статус отраслевого стандарта язык вышел в июне 1997 года, когда ECMA International утвердила спецификацию ECMAScript. В начале 2000-х у JavaScript наступил не самый веселый период. Рынок браузеров доминировал Internet Explorer, развитие шло медленно, а инноваций было немного. Ситуация изменилась в 2005 году с появлением AJAX, благодаря которому веб-приложения смогли обновлять данные без полной перезагрузки страницы. В 2009 году появился Node.js, позволивший запускать JavaScript на серверах, и язык окончательно перестал быть "чем-то только для браузера".
Сегодня JavaScript присутствует почти во всех уголках веб-разработки. В опросе Stack Overflow Developer Survey 2024 года 62 % разработчиков указали, что используют JavaScript, и он стал самым популярным языком программирования двенадцатый год подряд. В отчете JetBrains State of Developer Ecosystem JavaScript набрал 61 % среди участников опроса. TypeScript, надстройка над JavaScript с добавлением статической типизации, вырос по использованию с 12 % в 2017 году до 35 % в 2024-м. На JavaScript пишут мобильные приложения через фреймворки вроде React Native, настольные программы через Electron, серверную инфраструктуру через Node.js. В реестре npm сейчас оценивают от двух до трех миллионов пакетов.
На третьем десятке лет у JavaScript появился еще один фронт борьбы: вокруг самого названия языка. Торговую марку JavaScript Oracle унаследовала вместе с Sun Microsystems. При этом у Oracle нет ни одного продукта, который использовал бы это имя. В 2024 году представители сообщества решили, что бренд пора освободить. Открытое письмо, которое подписали Брендан Айк, создатель Node.js Райан Дал и более 28 тысяч членов сообщества, утверждает, что Oracle фактически бросила торговую марку, а термин JavaScript стал общеупотребительным.
В ноябре 2024 года группа подала в Бюро по патентам и товарным знакам США ходатайство об аннулировании регистрации. Авторы письма отмечают, что пока сохраняется риск претензий со стороны Oracle, невозможно, например, назвать мероприятие "JavaScript Conference" или официальную спецификацию "JavaScript Specification". Приходится выкручиваться с названиями вроде JSConf. Сам Айк еще в 2006 году писал, что официальное имя стандарта ECMAScript "всегда было нежеланным торговым названием, которое звучит как кожное заболевание".
Как бы оно ни называлось, сам язык пережил своих создателей и превратился в основу современного веба. Особенно иронично, что Java-апплеты давно исчезли из браузеров, а JavaScript доминирует. Когда-то "фриковый" побочный номер превратился в главное шоу. С днем рождения, JavaScript.