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