Я заметил, что Node.js стал очень популярным, и я видел несколько случаев, когда люди занимались мелкими проектами.
Я также просмотрел списки плюсов и минусов, чтобы получить представление о том, что может делать Node.js, но мне все еще неясно, чем он отличается от других, более зрелых технологий на стороне сервера, таких как PHP, Perl или Ruby. Rails.
Что, в частности, отличает Node.js от текущих альтернатив и почему?
web-development
comparison
node.js
Саид Нямати
источник
источник
Ответы:
Есть две важные вещи, которые отличают Node.js от существующих серверных сред, асинхронные события и использование JavaScript в качестве языка программирования.
Асинхронные события
В то время как большинство существующих серверных сред используют синхронную архитектуру, Node.js использует асинхронную архитектуру, с которой хорошо справляется JavaScript. Это означает, что сервер реагирует на события и отправляет события (сообщения), например, в базу данных. Этот стиль программирования очень отличается от синхронного стиля, и его может быть сложно использовать с другими языками. Node.js использует асинхронный стиль с асинхронным вводом-выводом и может хорошо масштабироваться.
Смотрите также Event-Driven Architecture
JavaScript
JavaScript - это язык программирования, который веб-приложения используют на клиенте. Использование одного и того же языка на стороне сервера означает, что разработчик может применять свои знания JavaScript как на клиенте, так и на сервере, и использовать те же функции, что и при необходимости.
Я бы порекомендовал презентацию Введение в Node.js с Райаном Далем, где он более подробно объясняет управляемую событиями архитектуру Node.js.
источник
async
материалом, хотя это может измениться. Проблема не в том, что вы не можете писать масштабируемый асинхронный код на других языках, а в том, что труднее сделать (правильно) без хорошей поддержки языкового уровня.Это отличается, потому что это событие управляемое . Это делает сервер очень масштабируемым.
В двух словах;
Модель потока
Модель события
источник
Session_Started
илиContext_Authenticated
илиPage_Load
?У меня сложилось впечатление, что его популярность объясняется использованием JavaScript. Поскольку многие веб-разработчики знают JavaScript, это выгодно, что теперь они могут разрабатывать код на стороне сервера, используя тот же язык. Это имеет несколько преимуществ, о которых я могу думать:
источник