
В этом году JavaScript исполняется 30 лет.
За три десятилетия он прошел путь от забавного и непритязательного скриптового языка, созданного за 10 дней, до самого популярного языка программирования в мире. Ниже — ключевые моменты истории JavaScript, которые помогут понять, как он менялся и куда идет.
❯ 1994
Декабрь
Релиз Netscape Navigator 1.0
Релиз Netscape Navigator 1.0 стал переломным моментом в истории Интернета. Браузер быстро завоевал популярность — он был быстрее и удобнее, чем Mosaic (выпущенный годом ранее в 1993). У него был современный графический интерфейс, что выгодно отличало его от ранних текстовых браузеров. Кроме того, он поддерживал зарождающиеся веб-стандарты, такие как HTML 2.0, и в будущем… JavaScript.

❯ 1995
Май
Брендан Айк создает первую версию JavaScript
Компания Netscape хотела добавить интерактивность на веб-страницы, которые в то время почти полностью состояли из HTML. Примерно в то же время Sun Microsystems представила язык Java, и Netscape лицензировала его для использования в своем браузере. Однако Java оказался слишком сложным для веб-дизайнеров.
Тогда Netscape поручила Брендану Айку создать скриптовый язык, который бы напоминал Java внешне, но при этом был объектно-ориентированным, а не основанным на классах. Так всего за 10 дней появился язык, который сегодня лежит в основе большинства веб-приложений. Название "JavaScript" было выбрано по маркетинговым соображениям — Java тогда была на пике популярности, и этим решили воспользоваться.
Декабрь
Netscape и Sun представляют JavaScript — открытый, кроссплатформенный, объектно-ориентированный скриптовый язык для корпоративных сетей и Интернета
JavaScript был представлен как легкий в использовании язык для добавления интерактивности на HTML-страницы. В этом анонсе Netscape и Sun обозначили свое видение будущего Интернета: Java-объекты передаются на клиентскую сторону, где их можно изменять с помощью скриптов на JavaScript. Важно отметить, что инициативу поддержали 28 технологических компаний — от America Online до Toshiba Corporation.
❯ 1996
Март
Microsoft выпускает JScript в составе Internet Explorer 3 — в ответ на успех Netscape Navigator
JScript — это открытая реализация JavaScript, адаптированная под экосистему Windows. Название выбрали, чтобы обойти авторские права на слово "Java". JScript, в отличие от JavaScript от Netscape, мог обращаться к объектам ActiveX в Windows — благодаря этому разработчики могли, например, взаимодействовать с Excel прямо через Internet Explorer.
var ExcelSheet; ExcelSheet = new ActiveXObject("Excel.Sheet"); // Делаем Excel видимым через объект Application ExcelSheet.Application.Visible = true; // Вставляем текст в первую ячейку листа ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1"; // Сохраняем файл ExcelSheet.SaveAs("C:TEST.XLS"); // Закрываем Excel, вызвав метод Quit у объекта Application ExcelSheet.Application.Quit(); // Освобождаем переменную-объект ExcelSheet = "";
Релиз Netscape Navigator 2.0 с JavaScript 1.0
JavaScript представлен широкой публике — с выпуском Netscape Navigator 2.0 он оказался установлен на миллионах компьютеров. Вместе с версией 1.0 в язык была добавлена ключевая инновация, которая стала основой современной архитектуры веба — модель объектного представления документа, более известная как DOM (Document Object Model).

❯ 1997
Июнь
Netscape передает JavaScript на стандартизацию в ECMA International
Чтобы устранить несовместимости между браузерами из-за разных реализаций JavaScript и JScript от Microsoft, компания Netscape передала спецификацию JavaScript в международную организацию ECMA. Цель — создать единый, независимый от производителей стандарт, который сможет использовать каждый.
Так появилась спецификация ECMA-262, а сам язык получил название ECMAScript (JavaScript использовать не могли из-за товарного знака). JavaScript и JScript стали его диалектами. Также был создан технический комитет TC39, в который вошли представители Netscape, Microsoft, Sun Microsystems и других компаний — именно этот комитет с тех пор определяет развитие ECMAScript.
❯ 1998
Январь
На фоне падения доли рынка Netscape открывает исходный код Navigator — так рождается проект Mozilla
После того как Microsoft начала предустанавливать Internet Explorer в Windows, популярность Netscape Navigator начала стремительно падать. В попытке спасти положение и конкурировать с Microsoft, Netscape приняла смелое решение — открыть исходный код своего браузера под названием "Mozilla" (внутреннее имя проекта, образованное от слов "Mosaic" и "killer"). Это было сделано для того, чтобы сообщество могло участвовать в создании более современного и соответствующего веб-стандартам браузера.
Уже на следующий день Джейми Завински из Netscape зарегистрировал домен mozilla.org. Так начался проект Mozilla, который позже подарил миру множество значимых технологий и продуктов: браузер Firefox, вкладки, расширения, а также язык программирования Rust.

Сентябрь
Официальный выпуск первой спецификации языка ECMAScript (ECMAScript 2)
Хотя в этой версии языка новых возможностей не появилось, спецификация была приведена в порядок, стала более последовательной и стандартизированной. Это стало прочным фундаментом для всех последующих обновлений.

❯ 1999
Март
Microsoft выпускает Internet Explorer 5 с большим количеством проприетарных технологий
В этой версии Microsoft представила XMLHttpRequest — первый удобный способ отправлять HTTP-запросы с помощью JavaScript:
// Как отправить HTTP-запрос в IE5. <script type="text/javascript"> function makeRequest() { // Создаем ActiveXObject (специфично для IE5/IE6) var xhr = new ActiveXObject("Microsoft.XMLHTTP"); // Открываем GET-запрос (async = true) xhr.open("GET", "https://example.com/data.txt", true); // Определяем функцию-обработчик, которая сработает при получении ответа xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { alert("Ответ получен: " + xhr.responseText); } }; // Отправляем запрос xhr.send(); } </script> <button onclick="makeRequest()">Отправить HTTP-запрос</button>
Апрель
Появление JSDoc
JSDoc, созданный по образу Javadoc для Java, предложил формальный и структурированный способ документирования JavaScript-кода. Это повысило профессиональный уровень языка, заложило основу для поддержки в IDE и позволило автоматически генерировать документацию — например, с помощью deno doc и для модулей на jsr.io.
/** * Складывает два числа и возвращает результат. * @param {number} value1 Первое число * @param {number} value2 Второе число */ function addNumbers(value1, value2) { return value1 + value2; }
Декабрь
Выпуск ECMAScript 3 с циклом do-while, регулярными выражениями, новыми методами строк (concat, match, replace, slice, split), обработкой исключений и другими улучшениями
ECMAScript 3 стал важной вехой в развитии JavaScript — именно с этой версии язык перестал быть просто "игрушечным" скриптовым языком и превратился в серьезный инструмент программирования. Он стал базовым стандартом для программирования в браузерах на целое десятилетие и по праву считается той версией JavaScript, которая задала основу языка для веба.
❯ 2001
Апрель
Отправлено первое сообщение в формате JSON
Оно выглядело примерно так:
<html><head><script> document.domain = "fudco"; parent.session.receive({ to: "session", do: "test", text: "Hello world" }) </script></head></html>
❯ 2002
Июнь
Появление JSLint — первого инструмента для проверки синтаксиса (линтера) JavaScript
JSLint, созданный Дугласом Крокфордом, стал первым крупным инструментом статического анализа кода для JavaScript. В то время язык широко использовался, но понимали его плохо, а код писали без соблюдения каких-либо правил. JSLint помог повысить качество кода. Жесткие правила, которые внедрял JSLint, легли в основу книги Крокфорда "JavaScript: сильные стороны".
Сентябрь
Mozilla выпускает Phoenix 0.1 — предшественника Firefox, чтобы составить конкуренцию Internet Explorer
Устав от медлительности и громоздкости Mozilla Application Suite, небольшая команда разработчиков создала минималистичный и упрощенный веб-браузер под названием Phoenix — символ возрождения браузера из пепла Netscape и Mozilla Suite. В то время Internet Explorer контролировал 90% рынка, а инновации практически отсутствовали. Phoenix предложил пользователям нечто новое: скорость, простой интерфейс, вкладки и блокировщик всплывающих окон. Этот проект ознаменовал возрождение ориентированных на пользователя открытых браузеров, стал основой Firefox и положил конец монополии Microsoft на рынке браузеров.

❯ 2003
Январь
Apple представляет Safari и WebKit
Генеральный директор Apple Стив Джобс объявляет о выходе Safari — "турбо-браузера для Mac OS X". Главное — это позволило Apple избавиться от зависимости от Microsoft, так как ранее пользователи Mac использовали Internet Explorer. Кроме того, это заложило основу для выпуска мобильного Safari на iPhone несколько лет ��пустя. Safari основан на WebKit — внутреннем форке движка браузера KHTML.

❯ 2004
Апрель
Выходит бета-версия Gmail, использующая новый асинхронный JavaScript-протокол — AJAX
Запуск Gmail стал переломным моментом в веб-разработке. AJAX позволил Gmail обеспечить высокую отзывчивость и интерактивность, которые тогда были беспрецедентны для веб-сайта, положив начало новой эпохе веб-приложений — Web 2.0.

❯ 2005
Февраль
Джесси Джеймс Гарретт вводит термин "AJAX" в своей статье "Ajax: новый подход к разработке веб-приложений"
AJAX (асинхронный JavaScript и XML) — набор клиентских технологий, позволяющих веб-приложениям отправлять и получать данные с сервера асинхронно, без перезагрузки страницы. Это открыло новую эру веб-приложений и фреймворков, способных обеспечивать богатый и плавный пользовательский опыт.
<script type="text/javascript"> function createXHR() { if (window.XMLHttpRequest) { // Современные браузеры (Mozilla, Safari, IE7+) return new XMLHttpRequest(); } else if (window.ActiveXObject) { // Старые версии IE (IE5, IE6) try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("AJAX не поддерживается вашим браузером."); return null; } } } return null; } function loadData() { var xhr = createXHR(); if (!xhr) return; xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status === 200) { document.getElementById("result").innerHTML = xhr.responseText; } else { alert("Провал запроса: " + xhr.status); } } }; xhr.open("GET", "/messages/latest", true); // Имитация запроса к серверу в стиле Gmail xhr.send(null); } </script> <button onclick="loadData()">Загрузить последнее сообщение</button> <div id="result">Ожидание ответа...</div>
Март
Корпорация Mozilla запускает DevMo By Mozilla, который позже будет переименован в MDN
Mozilla запускает DevMo By Mozilla — проект, который позже превратился в MDN (Mozilla Developer Network). MDN предоставлял точную, независимую и основанную на стандартах документацию, став центральным ресурсом для изучения веб-технологий. Это произошло в критический момент, когда несовместимость браузеров была серьезной проблемой, а существующая документация была разрозненной, устаревшей и непоследовательной. MDN быстро стал основным источником информации для веб-разработчиков и установил новый стандарт в области технической документации.

❯ 2006
Март
Джон Резиг делает первый коммит в проект jQuery
jQuery — JavaScript-библиотека, созданная для упрощения обхода DOM-дерева, обработки событий, AJAX и других задач. Она появилась как решение многих проблем, связанных с несовместимостью между браузерами. Кроме того, jQuery предложила хорошо документированный и лаконичный API, который установил новый стандарт опыта разработки. jQuery по-прежнему остается самой популярной JavaScript-библиотекой по числу загрузок на страницах.
<script src="https://code.jquery.com/jquery-1.0.0.min.js"></script> <script type="text/javascript"> function sendRequest() { $.ajax({ url: "https://example.com/data", type: 'GET', success: function(res) { document.getElementById("result").innerHTML = res; }, error: function(xhr, status, error) { alsert("Провал запроса: " + status); } }); } </script> <button onclick="sendRequest()">Получить данные</button> <div id="result">Ожидание ответа...</div>
❯ 2007
Январь
Apple выпускает первый iPhone, а мобильный Safari не поддерживает Flash
Отказ от использования Flash был намеренным шагом и стал предметом дискуссий. В то время около 90% интерактивного мультимедиа в интернете создавалось с его помощью. Однако Стив Джобс выступал против Flash из-за его ресурсоемкости, нестабильности и закрытой архитектуры. Для разработчиков это стало сигналом: будущее мобильного веба — не за Flash.

❯ 2008
Февраль
Закрытие Netscape Navigator ознаменовало конец "первой войны браузеров"
Компания AOL официально прекратила поддержку Netscape Navigator — некогда доминирующего браузера 90-х, который в определенный момент контролировал более 90% рынка. Это стало концом целой эпохи для одного из самых влиятельных веб-браузеров раннего интернета. Он утратил позиции в борьбе с Internet Explorer, который Microsoft предустанавливала в Windows. Это, в свою очередь, привело к знаковому антимонопольному судебному делу, оказавшему влияние на последующее регулирование в сфере технологий.

Май
Дуглас Крокфорд публикует книгу "JavaScript: сильные стороны"
Эта книга изменила восприятие JavaScript, показав его как полноценный и серьезный язык программирования, тогда как ранее его часто высмеивали за странности в дизайне и непредсказуемое поведение.

Сентябрь
Google выпускает браузер Chrome с новым движком V8
На фоне медленных браузеров вроде Internet Explorer, Firefox и Safari, где производительности JavaScript уделялось мало внимания, Chrome был настоящим прорывом. Он с самого начала был ориентирован на скорость, благодаря новому JavaScript-движку V8.
V8 стал революцией: он компилировал JavaScript в машинный код до выполнения, использовал JIT-компиляцию (just-in-time) и эффективно управлял памятью с помощью сборщика мусора. Вскоре Google открыл исходный код V8, что позволило другим разработчикам использовать его в своих проектах — самым известным из которых стал Node.js.

❯ 2009
Январь
Создается спецификация CommonJS (изначально ServerJS) для обмена JavaScript-кодом
JavaScript начинает выходить за пределы браузера и активно используется на сервере. Проекты становятся масштабнее, и язык нуждается в более эффективной организации исходного кода. Требуется модульность. Подробную информацию об истории CommonJS можно найти в этой статье.
Март
Райан Даль начинает работу над Node.js
Node.js — это кроссплатформенная, открытая среда выполнения JavaScript вне браузера. Благодаря Node.js разработчики получили возможность создавать веб-серверы и полнофункциональные приложения целиком на JavaScript. Сегодня Node.js используется примерно на 3,5% всех сайтов с известными серверами и остается одной из ведущих технологий для веб-разработки.

Райан Даль представил Node.js в одном из своих выступлений несколько лет спустя. Для более подробного ознакомления с проектом Node.js рекомендуем посмотреть этот документальный фильм.
Апрель
Oracle приобретает Sun Microsystems и право на товарный знак JavaScript
Oracle укрепляет свои позиции на рынке корпоративных технологий благодаря покупке Sun Microsystems и прав на Java. В рамках сделки Oracle также получает товарный знак JavaScript, что вызывает неопределенность относительно будущего языка. Подробнее о нашей инициативе по освобождению JavaScript от прав Oracle можно узнать здесь: #FreeJavaScript.

Июнь
Создан первый коммит в проект Express.js
Express.js — минималистичный, гибкий и расширяемый веб-фреймворк для Node.js, один из самых популярных в экосистеме. Он ввел модульную архитектуру посредников (middleware) с упором на создание RESTful API. Его влияние на развитие экосистемы трудно переоценить — Express вдохновил появление таких фреймворков, как Koa, Nest, Fastify и других. Несмотря на период низкой активности разработки, сегодня Express находится на версии 5 и активно поддерживается.

Декабрь
В ECMAScript 5 добавлены strict mode, геттеры и сеттеры, новые методы массивов, поддержка JSON, метод string.trim() и завершающие запятые в объектах
ECMAScript 5 стал первым значительным обновлением языка за 10 лет, добавив функции, которые сделали JavaScript более мощным, безопасным и удобным для поддержки.
Сделан первый коммит в проект CoffeeScript
CoffeeScript быстро получил популярность благодаря более чистому синтаксису (меньше шаблонного кода), стрелочным функциям (задолго до их появления в ES6), деструктуризации и другим обновлениям, повышающим качество разработки.

❯ 2010
Январь
Выход npm 1.0
npm — реестр библиотек (пакетов) для Node.js и JavaScript — навсегда меняет способ распространения JavaScript-кода. Сегодня это крупнейший в мире реестр с открытым исходным кодом, насчитывающий более 3 миллионов пакетов.

Май
Выход WebStorm 1.0 — новая IDE для JavaScript от JetBrains
До появления WebStorm текстовые редакторы предлагали лишь минимальную поддержку JavaScript. WebStorm стал первой специализированной средой разработки, которая предоставила расширенные возможности: анализ кода, обнаружение ошибок, автодополнение для JS/HTML/CSS и инструменты отладки, адаптированные под JavaScript.
Октябрь
Выход AngularJS и Backbone.js
С развитием JavaScript и растущим спросом на более быстрые и удобные способы создания сложных приложений, появляются два фреймворка — AngularJS и Backbone.js. Они становятся популярными по разным причинам: Angular предлагает декларативный и строго структурированный подход, тогда как Backbone — императивный и минималистичный. Этот момент также условно считается началом эпохи одностраничных приложений (SPA) и периода так называемой "смены фреймворков", когда новые JavaScript-фреймворки появлялись и устаревали с поразительной скоростью.

❯ 2011
Июнь
Microsoft и Joyent переносят Node.js на Windows
В 2011 году Райан Даль из Joyent и Берт Белдер (ныне сооснователь и технический директор Deno) перенесли Node.js на Windows — важнейший шаг, расширивший его использование за пределы Unix-подобных систем. Одним из результатов этой работы стала библиотека libuv, предоставляющая унифицированный интерфейс для асинхронных сетевых операций на Linux, macOS и Windows. Этот шаг не только ускорил рост популярности Node.js, но и стал поворотным моментом в открытости Microsoft, заложив основу для таких будущих инициатив, как TypeScript, Visual Studio Code и интеграция с облаком Azure.

❯ 2012
Март
Выход Webpack — модульного сборщика
Webpack позволил разработчикам импортировать практически что угодно на клиентскую сторону и со временем стал основой сборки для таких фреймворков, как React, Angular, Vue и других. Он заложил фундамент для появления и развития инструментов следующего поколения — Rollup, Parcel, Vite и esbuild.

Октябрь
Microsoft публикует TypeScript 0.8
В 2010 году Андерс Хейлсберг (создатель C# и Turbo Pascal) начал разработку статически типизированного надмножества JavaScript под названием TypeScript. Цель проекта — упростить написание и сопровождение масштабных JavaScript-приложений. В 2012 году Microsoft представила TypeScript широкой публике. Язык открыл дорогу к промышленной разработке в экосистеме JavaScript, повлиял на развитие самого ECMAScript и изменил подход к созданию крупных приложений.
function add(x: number, y: number): number { return x + y; }
❯ 2013
Март
Создан первый коммит проекта Atom Shell (позже переименованного в Electron)
Atom Shell, переименованный в Electron в 2015, значительно упростил создание кроссплатформенных десктопных приложений с использованием веб-технологий — HTML, CSS и JavaScript. Основанный на Node.js и Chromium, он предоставил разработчикам доступ к файловой системе, сетевым функциям и API операционной системы. Изначально фреймворк был создан для текстового редактора Atom от GitHub, выпущенного в публичную бету в апреле 2014 года. Среди первых известных пользователей — Slack. Electron сыграл ключевую роль в популяризации подхода, когда веб-технологии используются для создания десктопных приложений.

Февраль
Mozilla выпускает asm.js
asm.js — строгое подмножество JavaScript, созданное для достижения почти нативной производительности в веб-приложениях. До этого JavaScript не считался пригодным для ресурсоемких задач, таких как 3D-игры или обработка видео. asm.js позволял компилировать код на C/C++ в JavaScript, что открыло путь для запуска нативных приложений прямо в браузере. Это стало значительным шагом в развитии JavaScript как полноценной среды выполнения для дорогих с точки зрения вычислений приложений и подготовило почву для появления WebAssembly.
(function Module(stdlib, foreign, heap) { "use asm"; function add(x, y) { x = x | 0; y = y | 0; return (x + y) | 0; } return { add: add }; })(this, {}, new ArrayBuffer(1024)); console.log(Module.add(10, 20)); // 30
Апрель
Валерий Карпов вводит термин "MEAN"
MEAN — это аббревиатура, обозначающая полный стек технологий на JavaScript: MongoDB, Express.js, AngularJS и Node.js. Введение этого термина существенно повлияло на развитие современной веб-разработки.

Май
Facebook выпускает React
React, созданный Джорданом Уолком, инженером Facebook (ныне Meta), — это JavaScript-библиотека для декларативного построения пользовательских интерфейсов. Впервые React был представлен в новостной ленте Facebook в 2011 году и открыт для сообщества в мае 2013 года на конференции JSConf US. Компонентный подход React заложил основу современных декларативных UI-паттернов.

Июнь
Начало разработки ESLint
Николас С. Закaс, известный разработчик JavaScript и бывший ведущий разработчик библиотеки Yahoo! User Interface Library (YUI), начал работу над ESLint — расширяемым и настраиваемым инструментом для поиска и исправления проблем в JavaScript-коде. ESLint быстро стал незаменимым для разработчиков, преодолев ограничения существующих средств статического анализа и установив новые стандарты качества и единообразия кода.

Июль
Выпуск Gulp
Эрик Шоффсталл выпускает Gulp.js — потоковую систему сборки для автоматизации задач веб-разработки. Gulp предложил новый подход к обработке повторяющихся задач, таких как минификация, компиляция, линтинг и тестирование, используя простой и ориентированный на код стиль. Благодаря этому он быстро завоевал популярность как мощная альтернатива более сложным с точки зрения настройки таск-раннерам, таким как Grunt, и повлиял на развитие современных инструментов сборки.

❯ 2014
Февраль
Релиз Vue.js
Эван Ю, бывший инженер Google, выпускает Vue.js — прогрессивный JavaScript-фреймворк для создания пользовательских интерфейсов. В отличие от других фреймворков своего времени, Vue задумывался как простой в освоении, постепенно внедряемый и высокопроизводительный инструмент. Эти качества сделали его одним из самых популярных и влиятельных фреймворков в современной экосистеме JavaScript.

Июль
StrongLoop приобретает Express
Компания StrongLoop (сооснователем которой был Берт Белдер, будущий сооснователь Deno), специализирующаяся на корпоративных решениях на базе Node.js, получила права на Express.js с целью интеграции его в набор инструментов для создания API и микросервисов. Однако сообщество опасалось утраты независимости Express, что стало толчком к созданию альтернативных фреймворков, таких как Koa. В 2015 году StrongLoop была приобретена IBM, а в 2019 Express.js вошел в состав OpenJS Foundation, что обеспечило проекту прозрачное управление и устойчивое развитие. Спустя 10 лет разработки версии 4.x, Express 5 был официально выпущен в октябре 2024 года.

Сентябрь
Создан первый коммит в Babel.js
Изначально называвшийся 6to5, Babel.js — это компилятор JavaScript, позволяющий разработчикам писать код на современном JavaScript и преобразовывать его для совместимости со старыми браузерами и движками. Вскоре Babel стал стандартным инструментом в экосистеме: его начали использовать популярные фреймворки, такие как React, Vue и Angular, а также сборщики модулей Webpack, Rollup и Parcel.

Октябрь
Meteor достигает версии 1.0
Meteor произвел фурор в сообществе веб-разработчиков, предложив радикально простой способ создания полноценных, кроссплатформенных приложений реального времени исключительно на JavaScript. Он сыграл важную роль в формировании представлений разработчиков о том, как должны выглядеть современные реактивные и интерактивные веб-приложения. Несмотря на снижение популярности с развитием экосистемы, влияние Meteor заметно в таких технологиях, как React, Redux, Firebase, GraphQL и других.

Ноябрь
Facebook выпускает Flow — инструмент статической типизации для JavaScript
Flow — это инструмент статической проверки типов, созданный Facebook для выявления ошибок и повышения надежности кода на этапе разработки. Он стал частью внутренней инфраструктуры компании и помогал поддерживать масштабные проекты. Однако к концу 2010-х TypeScript занял лидирующие позиции среди решений для типизации JavaScript, что привело к постепенному снижению популярности Flow.

Amazon представляет AWS Lambda на базе Node.js
Amazon Web Services, уже являвшийся лидером на рынке облачных технологий, анонсирует новую парадигму — бессерверные (serverless) вычисления с помощью AWS Lambda. Этот сервис позволяет запускать код в ответ на события без необходимости управлять инфраструктурой. На момент запуска поддерживался только JavaScript на базе Node.js — благодаря его событийно-ориентированной и неблокирующей архитектуре, которая идеально подходила для кратковременного выполнения функций без состояния. Появление AWS Lambda положило начало концепции Function-as-a-Service (FaaS) и запустило волну развития serverless-подходов, к которым вскоре присоединились Google и Microsoft со своими решениями.

Декабрь
Федор Индутный создает io.js — форк Node.js
Node.js под управлением Joyent развивался медленно и не поддерживал современные возможности JavaScript, так как использовал устаревшую версию V8. Это вызывало недовольство у разработчиков, особенно на фоне стремительного прогресса во фронтенде. В результате был создан форк io.js, который предлагал более быстрые релизы и активное развитие. Первоначальная цель состояла в том, чтобы позже объединить io.js с основной веткой Node.js.

❯ 2015
Мэтт Биллманн, генеральный директор Netlify, вводит термин "Jamstack"
Jamstack (сокращение от JavaScript, API и Markup) — архитектурный подход к веб-разработке, предлагающий лучшую производительность, масштабируемость и удобство для разработчиков. Это ознаменовало начало новой эры в современной веб-разработке, когда внимание стало смещаться от SPA-архитектур в сторону SSR и SSG.

Февраль
Создание Node.js Foundation
Под эгидой Linux Foundation была основана Node.js Foundation для продвижения развития и внедрения Node.js путем решения проблем фрагментации проекта. В то время io.js — популярный форк Node.js, поддерживаемый группой бывших участников Node.js, стремившихся к более быстрым релизам и улучшенному управлению, — был объединен с основным проектом Node.js в июне 2015 года. Node.js Foundation получила поддержку крупных технологических компаний, таких как IBM, Microsoft, PayPal, Intel, Fidelity, Joyent и Linux Foundation.

Сентябрь
Запуск GraphQL — языка запросов для API
Facebook начал разработку GraphQL в 2012 году как декларативного языка запросов для получения данных с сервера. GraphQL предложил новый подход к получению и изменению данных с меньшим количеством обращений к серверу и с поддержкой строгой типизации.

Июнь
Выпуск Redux
С ростом числа разработчиков, создающих приложения на React, возникла потребность в управлении состоянием. Redux, предсказуемый контейнер состояния, был выпущен для решения этой задачи. Сейчас Redux используется с множеством различных JavaScript-фреймворков.

Релиз WebAssembly
WebAssembly был создан для решения проблем с производительностью JavaScript в браузере. Он обеспечивает высокоскоростное выполнение ресурсоемких приложений, таких как игры, видеоредакторы и другие. Также WebAssembly предоставляет переносимый и безопасный способ запуска кода, написанного на таких языках, как C/C++, в браузере.

Выпуск Atom — "настраиваемого" текстового редактора
Atom стал одним из первых высоко расширяемых десктопных редакторов, полностью построенных на веб-технологиях. Он делал акцент на глубокой кастомизации, позволяя разработчикам изменять все — от интерфейса до базового поведения — с помощью пакетов и тем. Atom не только подтвердил эффективность Atom Shell (ныне известного как Electron) как фреймворка для создания кроссплатформенных десктопных приложений, но и изменил восприятие текстовых редакторов: с простых инструментов они превратились в платформы. Atom вдохновил появление современных расширяемых инструментов на базе веб-технологий, таких как VS Code, который взял и развил многие ключевые идеи Atom.


Atom 1.0 был выпущен с этим видео-анонсом в ретро стиле от GitHub.
Июль
Релиз ECMAScript 6 (ES2015)
С выходом ES6 JavaScript получил долгожданные возможности, такие как fetch API и встроенная система модулей ESM с командами import и export.
<script type="text/javascript"> function getData() { fetch("https://api.example.com/data") .then(response => { if (!response.ok) { throw new Error("Провал запроса: " + response.status); } return response.text(); // или response.json() для JSON API }) .then(data => { document.getElementById("result").textContent = data; }) .catch(error => { console.error("Ошибка:", error); alert("Ошибка получения данных."); }); } } <button onclick="getData()">Получить данные</button> <div id="result">Ожидание ответа...</div>
Сентябрь
Объединение Node.js v0.12 и io.js в Node.js v4.0
Node.js v4.0 стал результатом многолетней работы над проектами Node.js и io.js, объединенных в единый код. Это слияние завершило период раздробленности сообщества, когда многие npm-модули были несовместимы с одной из платформ. Кроме того, был введен график долгосрочной поддержки и новая схема семантического версионирования. Успех слияния продемонстрировал силу открытого управления и сотрудничества сообщества.
❯ 2016
Январь
Microsoft открывает исходный код JavaScript-движка Chakra, используемого в браузере Edge
Microsoft стремилась привлечь внешних разработчиков и расширить использование Chakra за пределами браузера Edge, открыв исходный код движка. Это вызвало значительный интерес со стороны сообщества, и даже была выпущена версия Node.js, работающая на Chakra. Однако движок V8 оставался доминирующим благодаря обширному сообществу и развитым инструментам. К 2021 году Microsoft объявила о прекращении активной разработки Chakra и переходе на Chromium-версию Edge, основанную на движке V8.
Март
Азер Кочулу удаляет пакет Leftpad из npm, что приводит к масштабной атаке на цепочку поставок, затронувшей миллионы пользователей
Этот инцидент, известный как "случай с Leftpad в npm", произошел после конфликта Азера с Kik Messenger. Удаление Leftpad вызвало сбои в тысячах проектов, использующих этот пакет в качестве зависимости, включая React и Babel, из-за чего их невозможно было собрать или установить. Это создало серьезные перебои у крупных технологических компаний, таких как Meta, Netflix и Spotify, и продемонстрировало огромные риски, связанные с уязвимостями цепочки поставок в экосистеме JavaScript. После этого npm изменил свою политику, ограничив возможность пользователей удалять свои пакеты.
Апрель
Microsoft выпускает VSCode 1.0 — легкую, быструю и кроссплатформенную IDE
Созданная на основе веб-технологий (Electron, TypeScript), VSCode сразу предложила полноценную поддержку JavaScript и TypeScript. Она быстро стала серьезным конкурентом Sublime Text, Atom и другим полноценным IDE.

Microsoft анонсировала VSCode на конференции Microsoft Build в 2015 году.
Июнь
Выпуск ECMAScript 2016, который добавил оператор возведения в степень (**) и метод массива array.includes()
Сентябрь
Релиз Angular (Angular 2)
Angular — полное переосмысление оригинального AngularJS, созданное с нуля для устранения многих его недостатков. Среди ключевых изменений — переход от архитектуры Model-View-Controller к древовидной структуре компонентов, использование TypeScript для улучшения инструментов разработки и внедрение Ahead-of-Time компиляции для повышения производительности и безопасности. Благодаря своей структуре и строгой архитектуре Angular стал одним из ведущих решений для крупных корпоративных приложений.

Октябрь
Выпуск Next.js 1.0
Next.js стартовал как небольшой фреймворк для серверного рендеринга универсальных JavaScript-приложений на базе React, Webpack и Babel. Он упростил использование серверного рендеринга с React, открыв путь к созданию полноценных full-stack React-приложений. С помощью Next.js разработчики получили удобный инструмент для создания контентно насыщенных и SEO-оптимизированных сайтов. В конечном итоге этот фреймворк получил статус основного инструмента для разработки React-приложений промышленного уровня.

❯ 2017
Март
Создан первый коммит для предложения Temporal
Предложение Temporal было представлено как решение множества проблем встроенного объекта Date в JavaScript — таких как отсутствие неизменяемости, поддержки часовых поясов и перехода на летнее/зимнее время, а также непоследовательный разбор дат. В 2021 году Temporal был одобрен для включения в стандарт ECMAScript. Однако на сегодняшний день API Temporal поддерживается только в Firefox Nightly и Deno.
Апрель
Выход Prettier 1.0
Prettier — это отличный форматировщик кода, который обеспечивает единый стиль оформления, разбирая код и перепечатывая его по собственным правилам. Он был создан, чтобы сократить время на код-ревью, часто затянутые из-за разногласий в стиле форматирования. В отличие от ESLint, который в основном обнаруживал проблемы, Prettier фокусировался именно на автоматическом исправлении форматирования. Он популяризировал подход "пиши как удобно, форматируй позже", что способствовало более чистому коду и упрощению взаимодействия в команде. Его влияние вышло за пределы JavaScript: Python-проекты стали использовать Black, а в Rust форматтер включили в официальный стек разработки, сделав его обязательным этапом сборки.

Июнь
Выпуск ECMAScript 2017 с методами дополнения (padding) строк, Object.entries(), Object.values(), асинхронными функциями и другими обновлениями
К 2017 году метод fetch() получил широкую поддержку во всех современных браузерах (кроме Internet Explorer 11), и многие разработчики уже активно использовали async/await — как напрямую, так и через транспиляцию с помощью Babel.
<script> async function getData() { try { const response = await fetch("https://api.example.com/data"); if (!response.ok) { throw new Error("Ошибка HTTP " + response.status); } const data = await response.text(); // или response.json() для JSON document.getElementById("result").textContent = data; } catch (error) { console.error("Порвал запроса:", error); alert("Что-то пошло не так!"); } } </script> <button onclick="getData()">Загрузить данные</button> <pre id="result">Ожидание ответа...</pre>
Сентябрь
Facebook запускает Yarn — новый менеджер пакетов
Yarn был создан для решения проблем npm того времени: скорости, надежности и согласо��анности. Yarn представил такие новшества, как детерминированное разрешение зависимостей с помощью yarn.lock, автоматическое кэширование пакетов, параллельную установку и многое другое.

Сентябрь
Cloudflare запускает Cloudflare Workers, позволяя разработчикам запускать JavaScript на границе (edge)
Cloudflare Workers открыли современную эру serverless edge computing, объединив принципы бессерверных вычислений с распределением на периферии (на тот момент — около 100 дата-центров, сейчас — более 300) и быстрой, масштабируемой изоляцией. Благодаря запуску кода ближе к конечным пользователям снизилась задержка, а холодный старт стал минимальным, поскольку Workers работают на легких изолятах V8 (в отличие от контейнеров или микровиртуалок). Запуск Workers преобразовал Cloudflare из CDN-компании в полноценную платформу для веб-приложений, а также проложил путь другим платформам, таким как Netlify, Vercel и Deno Deploy, для внедрения изолированных граничных функций.

❯ 2018
Январь
Google выпускает Puppeteer 1.0 — значимое событие в эволюции инструментов автоматизации браузеров
В отличие от других инструментов, таких как Selenium, которые требовали поддержки нескольких языков программирования, Puppeteer был создан специально для Node.js и предлагал современный, ориентированный на JavaScript API для управления безголовым (headless) браузером Chrome. Выпуск Puppeteer сделал Chromium фактическим стандартом для браузерной автоматизации, способствовал упадку PhantomJS и повлиял на создание таких фреймворков, как Playwright и Cypress.

Март
Релиз TensorFlow.js, позволяющего выполнять машинное обучение в браузере с помощью WebGL или WebGPU без необходимости в специальных серверах
TensorFlow был открыт Google в 2015 году и быстро стал основным инструментом для исследований в области машинного обучения. TensorFlow.js значительно упростил вход в ML для веб-разработчиков: теперь можно было использовать модели машинного обучения прямо в браузере, без Python. Это дало возможность создавать веб-приложения с встроенным ИИ и предсказаниями в режиме реального времени.

Июнь
Конфликт ECMA TC39, получивший шуточное название "Smooshgate", был решен переименованием метода flatten в flat
В 2018 году комитет TC39 предложил добавить в JavaScript новый метод flatten для массивов — он должен был "расплющивать" вложенные массивы. Однако выяснилось, что библиотека MooTools уже использовала метод flatten, причем его реализация была несовместима с новой. Это вызвало опасения, что новые изменения могут нарушить работу существующих проектов. В ответ на ситуацию один из членов TC39 в шутку предложил назвать метод smoosh (плющить), что вызвало волну обсуждений и мемов в сообществе. В итоге решили остановиться на более нейтральном названии flat.

Райан Даль анонсирует новый проект во время рассказа о своих сожалениях по поводу Node.js
В 2018 году Райан Даль представил новую среду выполнения JavaScript под названием "Deno" (анаграмма слова Node) в рамках популярного доклада "10 вещей, о которых я жалею в Node".

Октябрь
Выпуск ECMAScript 2018 с поддержкой операторов rest/spread, асинхронной итерации, promise.finally() и другими обновлениями
2019
Март
Объединение JavaScript Foundation и Node.js Foundation в OpenJS Foundation
На тот момент экосистема JavaScript с открытым исходным кодом была разделена между несколькими фондами, каждый из которых управлял разными проектами. Node.js Foundation занимался Node.js и серверной JavaScript-средой, а JavaScript Foundation (ранее jQuery Foundation) управлял клиентскими библиотеками, такими как jQuery, ESLint и Lodash. Эти фонды работали независимо, что приводило к дублированию ресурсов и раздробленной поддержке проектов JavaScript. С ростом роли Node.js как стандартной backend-платформы и развитием frontend-библиотек, объединение фондов было направлено на единое управление и поддержку всей экосистемы JavaScript.

Апрель
Экспериментальная поддержка ECMAScript-модулей в Node.js v12.0.0
Поскольку JavaScript начал использовать ES-модули для повторного использования кода, Node.js постепенно стал поддерживать эту концепцию. В версии 12.0.0 были введены расширение файлов .mjs, поле type в package.json и новые механизмы для взаимодействия с CommonJS.
Июль
Выпуск ECMAScript 2019 с такими возможностями, как Object.fromEntries(), String.prototype.trimStart() и др.
Ноябрь
Стабильная поддержка ESM в Node.js v13.2.0
Node.js v13.2.0 ознаменовал официальную стабилизацию поддержки ECMAScript-модулей — важный этап в экосистеме Node.js. Это позволило разработчикам использовать стандартный синтаксис import и export нативно, что приблизило Node.js к современным стандартам JavaScript.
❯ 2020
Май
JavaScript на борту космического корабля SpaceX Dragon
Известный сенсорный интерфейс капсулы Dragon работает на Chromium и полностью написан на JavaScript. Разработчики SpaceX объяснили на AMA, что выбор пал на Chromium благодаря его зрелости и доступности специалистов, знакомых с этой платформой.

Релиз Deno 1.0
Райан Даль представляет первую стабильную версию Deno — универсальный инструмент для разработки на современном JavaScript. Платформа выходит как единый исполняемый файл с полноценной поддержкой TypeScript, моделью разрешений по запросу и возможностью импортировать модули по HTTP.

Декабрь
Adobe официально завершает поддержку Flash, поставив точку в эпохе веб-видео и игр, оставивших яркий след в интернет-культуре
Для тех, кто любит поностальгировать, Интернет-архив хранит коллекцию Flash-игр и анимаций.

Кто помнит эту игру?
❯ 2022
Июнь
Deno присоединяется к TC39, подчеркивая стремление компании поддерживать стандарты JavaScript на стороне сервера
Internet Explorer 11 официально отправлен на покой
Завершение поддержки IE11 ознаменовало конец эпохи, длившейся более двух десятилетий, в течение которых Internet Explorer был самым популярным браузером в мире. Из-за множества уязвимостей и несоответствия современным веб-стандартам, отказ от IE11 стал важным шагом к более безопасному, производительному и унифицированному веб-пространству.

Выпуск ECMAScript 2022 с поддержкой await верхнего уровня, новыми свойствами и методами классов, статическим блоком внутри классов и другими обновлениями
❯ 2023
Сентябрь
Релиз Bun 1.0
Появилась новая серверная среда выполнения JavaScript (написанная на Zig), которая позиционирует себя как максимально эффективная замена Node.js.

❯ 2024
Февраль
Node.js определился с талисманом — им стал Rocket Turtle, выбранный по итогам конкурса среди дизайнеров
Идея создания талисмана обсуждалась в сообществе Node.js на протяжении многих лет. В 2023 году Матео Коллина начал обсуждение этой темы в GitHub, что привело к проведению конкурса дизайна в Twitter. К февралю был выбран финальный дизайн — Rocket Turtle.

Июнь
Выпуск ECMAScript 2024 с методом toWellFormed() для возврата корректно сформированных Unicode-строк и другими обновлениями
Март
Релиз JSR — современного открытого реестра пакетов JavaScript
Команда Deno представила JSR — реестр JavaScript, который призван улучшить опыт установки и публикации пакетов. Он поддерживает только ECMAScript-модули, нативно понимает TypeScript, совместим с npm и обеспечивает кроссплатформенную поддержку для Deno, Bun, workerd и других инструментов.

Сентябрь
Начало юридической борьбы с Oracle за освобождение торговой марки JavaScript (#FreeJavaScript)
После того как пост Райана Дала с просьбой к Oracle освободить торговую марку JavaScript привлек внимание сообщества (но не получил никакого ответа от Oracle), команда Deno опубликовала открытое письмо с намерением оспорить права Oracle, подав петицию об отмене регистрации в USPTO по причине отказа от торговой марки. Письмо собрало почти 20 000 подписей, включая известных личностей, таких как Брэндан Айк, Айзек З. Шлютер и других. Юридическая борьба продолжается, а обновления можно отслеживать в Twitter (X) или Bluesky от команды Deno.

Октябрь
Выпуск Deno 2
Deno 2 — крупное обновление, сохраняющее простоту версии 1.x, но при этом обеспечивающее обратную совместимость с устаревшим JavaScript, включая Node и npm. С этим релизом Deno стал первой средой выполнения JavaScript, выпустившей коммерческую рекламу.

❯ 2025
Март
Решение о переносе TypeScript на Go
TypeScript, изначально реализованный на TypeScript/JavaScript, долгое время сталкивался с проблемами производительности при работе с крупными проектами. Чтобы устранить эту проблему, Андерс Хейлсберг начал экспериментировать с реализацией TypeScript на языке Go. Первые тесты показали примерно десятикратное улучшение скорости, что вдохновило команду TypeScript продолжить работу над портированием на Go под названием tsgo. Выпуск tsgo планируется в TypeScript 7.0, когда он достигнет достаточного функционального соответствия версии на JavaScript.

Андерс Хейлсберг представляет новую реализацию TypeScript.
Май
Microsoft объявляет о планах открыть исходный код расширения Copilot Chat для VSCode
В условиях активного развития AI-ассистированного кодирования и появления множества инструментов для разработчиков, Microsoft продолжает поддерживать движение open source, объявив об открытии расширения GitHub Copilot Chat под лицензией MIT. В конечном итоге компания планирует сделать VS Code открытым AI-редактором. Этот шаг призван стимулировать сообщество улучшать и развивать общие AI-взаимодействия в разных редакторах, повышая качество агентского программирования во всех инструментах.
JavaScript прошел долгий путь за свои 30 лет — от простого скриптового языка до основы современной веб-разработки, которая питает все: от динамичных интерфейсов до полноценных full-stack приложений, нативных приложений и даже AI-инструментов. Его эволюция была возможна благодаря приверженности открытым стандартам, активному сообществу, постоянно растущей экосистеме и непрерывным инновациям. Отмечая три десятилетия JavaScript, мы с нетерпением смотрим вперед: к более быстрым средам выполнения, умным инструментам и вебу, который становится доступнее, мощнее и креативнее, чем когда-либо. За следующие 30 лет новых достижений и прорывов!
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩

