Node.js и упущенные возможности



О возможности писать серверные приложения на JavaScript я слышал давно и воспринимал сообщения об этом за проявления неких экзотических тенденций. Прочитав же на днях статью о программировании в среде Node.js понял, что зря не обрашал на них серьезного внимания. Действительно, плюсы видны невооруженным взглядом:

  • высокая скорость (задействован гуглевский движок v8 );
  • асинхронность (сервер не простаивает, ожидая окончания сравнительно медленных операций, таких, как запросы к БД);
  • компилировать не нужно;
  • все необходимые возможности — работа с файлами, сетевыми сокетами, http-запросами — в наличии;
  • внешние библиотеки подключать можно.

Есть и другие достоинства, но самое главное — клиент и сервер пишутся на одном и том же языке — JavaScript. Причем сервлеты создавать можно просто с полпинка:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');


Чтобы накодить такое на Java нужно раза в два-три больше букв (с учетом импорта), да еще компилировать и к серверу прикручивать. Здесь же написал код, запустил:

node HelloWorldServer.js


— и всё, можно открывать в браузере 127.0.0.1:1337/ и любоваться результатом. Консольный «Hello, World!» делается и того смешнее:

echo 'console.log("Hello, World!")' > Test.js
node Test.js


Короче говоря, рекомендую, это уже экзотика, а вполне себе профессиональный инструмент. Но это вовсе не означает, что нужно бросить привычные языки программирования и принять новшество как истину в последней интанции. Node.js на это и не претендует. Его целесообразно использовать для сбора информации на веб-интерфейсах и ее первичной обработки, после чего данные будут передаваться более серьезным серверам, написанным, например, на той же Java. Накладные расходы на запуск Node.js-сервлетов не велики (написан фреймворк на C++), так что перерасхода памяти на запуск нескольких серверов опасаться не стоит.

Комментарии (2)

RSS свернуть / развернуть
+
0
Там еще библиотеки на C прикручиваются
nodejs.org/docs/v0.4.12/api/addons.html
avatar

Sergei_T

  • 18 октября 2011, 09:16
+
0
С Java тоже можно подружить через Redis. Redis — еще одна новомодная штука, от которой все писают кипятком. Планирую плотно поизучать и поюзать.
avatar

yababay

  • 18 октября 2011, 16:09

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.