javascript

Краткая история JavaScript

  • воскресенье, 8 июня 2025 г. в 00:00:07
https://habr.com/ru/companies/timeweb/articles/913894/



В этом году 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-канале