Преимущества node.js по сравнению с другими веб-технологиями

Как я понимаю, node.js полезен для программистов Java Script, которые теперь могут развиваться на стороне сервера. Кроме того, некоторый код Java Script может быть перенесен с клиентской стороны на сервер.

Есть ли другие преимущества для node.js по сравнению с другими серверными технологиями (веб-фреймворки Java, RoR, Django и т.д.)?

Ответы

Ответ 1

Управление пакетами

По сравнению с Java Maven node.js система управления пакетами (npm) является лучшим в истории. Для меня этого достаточно, чтобы переключиться. Пакеты, которые я рекомендую вам проверить:

  • выразить
  • socket.io
  • node_redis
  • мангуст
  • everyauth

Вы можете искать пакеты с помощью http://search.npmjs.org/

Быстрый

node.js очень быстрый (неблокирующий цикл событий), а также имеет очень быстрые собственные привязки (C). Например, тесты node_redis (C binding):

PING: 20000 ops 46189.38 ops/sec 1/4/1.082
SET: 20000 ops 41237.11 ops/sec 0/6/1.210
GET: 20000 ops 39682.54 ops/sec 1/7/1.257
INCR: 20000 ops 40080.16 ops/sec 0/8/1.242
LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212
LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363
LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287

Активная разработка/сообщество

Райан Дал очень много работает над своим проектом. Кроме того, node.js теперь имеет активную поддержку (спонсора) от, например, Joyent. Сообщество быстро растет

Ответ 2

Производительность является основным преимуществом, node.js выделяет небольшую кучу за каждое соединение, в то время как другие решения на стороне сервера создают поток (2 МБ) для каждого входящего соединения, и, конечно, создание потока происходит намного медленнее, чем распределение кучи Память. Среди других преимуществ - ориентированный на события и неблокирующий характер node.js.

Ответ 3

node.js управляется событиями. Хотя большинство других фреймворков имеют такую ​​функциональность, встроенную в качестве надстройки (например, через машину событий), это просто "путь" в node.js. Мысль о том, что архитектура, управляемая событиями, может привести к созданию более масштабируемых приложений (часто мотивированных проблемой C10K). Во-вторых, написанное на JavaScript снижает барьер для входа для большинства разработчиков, которые уже привыкли работать с языком. По-моему, это тоже очень приятно работать, но я не могу сказать, что я развернул его для любых приложений с высоким трафиком. У него также есть машина для обмана. Недавно я полюбил lift и scala, но это только мои собственные предпочтения.

Ответ 4

В качестве разработчиков приложений мы несем ответственность за применение логики для решения проблем. Все проблемы, с которыми сталкиваются разработчики front-end, имеют аналогичные аналоги для разработки на заднем плане. Да, они выражаются по-разному, но они в основном одни и те же проблемы.

Node просто выражает этот факт, объединяя методологии дискретным и рациональным образом.

Благодаря тому, что фоновый код написан таким же образом, применяя те же логические пути, он делает переход гораздо более прозрачным для разработчика, упрощая их работу