Node.js є одним з найпопулярніших проектів з відкритим кодом і вже багато років є провідною технологією для розробки серверної частини. Це не є мовою програмування; швидше, це середовище виконання для JavaScript, подібне до того, як працюють браузери. За допомогою Node.js ми можемо писати код на JavaScript для серверної частини та виконувати високопродуктивні операції на сервері.
Історія Node.js почалася в березні 2011 року, коли відео, в якому Раян Дал (Ryan Dahl), творець Node.js, демонструє свою лекцію для невеликої групи розробників на зустрічі PHP у Сан-Франциско, стало вірусним серед розробників. Він представив революційну концепцію: виконання JavaScript на сервері. До цього часу JavaScript здебільшого використовувався як мова програмування для клієнтської частини, що виконувалася виключно в браузерах.
Дал пояснив, що він взяв V8-двигун від Google Chrome — високопродуктивний двигун JavaScript, написаний на C++ — і поєднав його зі своїм власним кодом на C++, щоб створити автономне середовище виконання, яке могло запускати JavaScript на будь-якій системі на основі UNIX. Двигун V8 перетворює JavaScript на машинний код, що значно прискорює виконання порівняно з попередніми версіями двигунів JavaScript, які працювали виключно за допомогою інтерпретації. До появи V8 JavaScript працював відносно повільно через свою повністю інтерпретовану природу. Впровадження компіляції Just-In-Time (JIT) в двигуні V8 значно покращило продуктивність, і Дал побачив його потенціал для використання на серверній стороні.
У 2009 році Раян Дал офіційно випустив Node.js, програму на C++, що дозволяла виконувати JavaScript поза браузером. Однак перша реакція розробників була холодною. Багато хто вважав JavaScript "ігровою мовою", придатною лише для додавання інтерактивності на сайти, таких як маніпулювання DOM. Тоді домінували бекенд-технології, такі як Ruby on Rails, що ускладнювало поширення Node.js.
Незважаючи на початковий скептицизм, Дал не здався. Важливий момент настав у 2010 році, коли Ісак Шлюетер (Isaac Schlueter) представив npm (Node Package Manager). npm дозволив розробникам по всьому світу обмінюватися та повторно використовувати добре структуровані модулі або пакети Node.js. Така модульність означала, що розробники більше не повинні були вигадувати нові рішення для стандартних функцій, що сприяло кращій співпраці на великих проектах. Наприклад, один розробник міг працювати над комунікацією з базою даних, а інший — над інтеграцією API, всі працюючи разом і обмінюючись кодом через npm. Ця інновація зробила Node.js надзвичайно популярним у розробницькому середовищі.
Протягом того ж часу важливі зміни відбувалися в світі баз даних та API. У лютому 2009 року була представлена MongoDB, база даних NoSQL. На відміну від традиційних реляційних баз даних, таких як MySQL та Oracle, MongoDB зберігає дані у форматі бінарного JSON (BSON), а не в таблицях. Спочатку розробники ставилися до MongoDB з обережністю через її незнайому структуру та домінування реляційних баз даних. Однак ситуація змінилася, коли великі платформи, такі як Facebook та Twitter, почали пропонувати API для розробників, які повертали дані у форматі JSON, а не в застарілому форматі XML.
JSON, що є похідним від нотації JavaScript, чудово поєднувався з екосистемою JavaScript. Оскільки Node.js також базується на JavaScript, розробники могли без проблем працювати з даними в JSON-форматі. Зберігання даних у форматі, подібному до JSON, у MongoDB ще більше спрощувало зберігання та обробку відповідей API, особливо коли йдеться про складні, вкладені дані.
Крім того, з’явився Express.js, мінімалістичний та гнучкий фреймворк для веб-застосунків на Node.js. Разом, Node.js, MongoDB та Express.js створили основу для популярних стеків розробки, таких як MERN (MongoDB, Express.js, React, Node.js) та MEAN (MongoDB, Express.js, Angular, Node.js).
Перекладено з: Node.js: The Evolution of JavaScript Beyond the Browser