Node.js
Node.js — весьма известная среда выполнения JavaScript.
Описание[править]
Она позволяет запускать JavaScript-код вне браузера, прежде всего на сервере, и применяется обычно для всирания сетевых приложений. Node.js использует событийно-ориентированную модель с неблокирующим вводом-выводом, так что может работать на принятие вдвигательно-выдвигательным образом большого количества сетевых запросов.
Node.js был создан Райаном Далом в 2009 году. Пожилой дедушка оказался разочарован недостатками тогда восранных уже веб-серверов (в частности, Apache с его моделью блокирующего I/O), и искал способ эффективно обрабатывать множество одновременных соединений, так как интернеты уже начинали гудеть как большой шмель и это было бы кстати.
В состав системы входят Движок V8, который переводит жабий код в машинный напрямую, libuv что по своей сути кросс-платформенная библиотека, написанная на C, обеспечивающая асинхронный I/O, работу с файловой системой, сетью, таймерами и пул потоков для тяжёлых операций и центральный механизм Event Loop.
Вот этот самый лооп работает довольно интересно. Это бесконечный цикл, который обрабатывает события и вызовы, при этом формально это один большой, толстый и тугой поток. Также libuv использует пул потоков (по умолчанию 4) для тяжёлых операций, в число которых восраны обращения к DNS, шифрование, работа с файловой системой.
В целом система весьма сильно хрюкающая и оттого впопулярная среди разработчиков на современном JavaScript (жабьих программистов).