Node.js = JavaScript, или нет?

в 4:08, , рубрики: butthurt, javascript, node.js, метки: , ,

В статье пойдет речь о похожести Node.js на JavaScript. Можно ли считать Node отдельным языком, или это просто надстройка для JS?
Внимание Butthurt.
Node.js = JavaScript, или нет?

Эта статья не поможет опытному Node.js разработчику, но позволит лучше ориентироваться остальным.

Рассмотрим три самых типичных мнения.

Node.js всего лишь серверная реализация V8 от Google? – Сложно спорить что это не так. Это равносильно тому что сказать, RoR это всего лишь модуль WEBrick, или PHP – модуль Apache. Node.js полноценный язык основанный на JS.

Node.js это просто JS исполняемый на сервере? – Как упоминалось ранее, Node конечно основан на JS, но имеет ряд существенных отличий. Нельзя взять JS программиста и сказать, «сегодня ты будешь писать под Node!», именно это я считаю дает право называть его другим языком программирования. К примеру, несмотря на то что операторы if, case, for есть в 99% языков, мы не говорим, что все языки одинаковы?

Node.js глючная, нестабильная хрень, очередной изврат гугла – С этим тоже не поспоришь. Ко мне, как разработчику, сама мысль запустить JS на сервере могла прийти только в неадекватном состоянии. Однако, всему свое назначение. Мы привыкли что сложное веб приложение это нагромождение кучи модулей, для comet-а мы подымаем nginx(или аналог), для кеширования мы запускаем mongo, для обмена данными между скриптами мы сохраняем их где-то в бд. Node дает нам все это в одном флаконе. Я могу создать расписание без cron, могу отправить сообщение в чат другому юзеру, не выходя при этом за пределы одного скрипта, но любая ошибка в коде – положит все, в этом его гениальность, в этом его маразм.

В чем же схожесть и различия Node.js и просто JS?

Давайте начнем со схожести:

  • Идентичный синтаксис.
  • Большая масса идентичных операторов.
  • У обоих модель наследования Prototype.
  • Node, как и обычный JS асинхронен, единственный широко известный, асинхронный, язык. Что делает их еще больше похожими друг на друга, но непохожими на другие языки, и сложными для изучения типичному си-стайл программисту.

Скорей всего список схожести можно еще продолжить, схожесть этих двух языков очевидна и без углубленных сравнений. Намного тяжелее ситуация с отличиями.

Конечно Node.js есть функции и модули присущие только ему, но не углубляясь в детали, можно выделить всего одно существенное отличие, порождающее все остальные:

  • Акцент назначения.

Именно эта слабо понятное выражение все меняет. Node.js акцентирован совсем на другое окружение. То, что допустимо в JS, абсолютно недопустимо в Node, правила хорошего кода меняются кардинально. Так же меняется и построение кода. Чаше всего в JS мы работаем с DOM, создаем визуальные эффекты, подгружаем что-то AJAX-ом. В Node — полноценное веб приложение, где в одном скрипте работает много юзеров, обычно есть база данных и многое другое. Как я ранее упоминал, нельзя взять JS программиста и сказать, «сегодня ты будешь писать под Node!», а потому Node по праву можно считать другим языком программирования, имеющего в основе обычный JS.

Автор: edli007

Источник

Поделиться

* - обязательные к заполнению поля