Не "because they can", а потому что в js есть анонимные функции, да к тому же функции — first class object. Движок v8 от ребят из гугла адски быстр. А наиболее благоприятная область применения ноды — задачи, где есть множество клиентов, которые стремятся держать постоянные соединения с сервером. Так что эта связка "libevent + ядро-скрипт + некоторое api + сервер-как-один-персистентный-процесс" получилась весьма приятной — памяти ест мало, работает шустро и держит тысячи полупассивных клиентов не напрягаясь. Некоторые люди делают на ноде полноценные движки\сайты, параллельно оглашая интернет радостными воплями. Некоторые индивиды используют ноду вообще для задач вне веб. Особо сильной блевотины в сторону ноды я не встречал, хотя часть людей, например, плюются от спагетти коллбэков (те, кто не умеет их готовить), а большой пласт быдла, оказывается, вообще не может в асинхронное программирование. Некоторые когда слышат кейворд "nodejs" любят сразу же заикаться про erlang, да упоминать, что есть пара фреймворков на хаскелле, которые обгоняют ноду на веб-helloworld'ах. А ещё гуляет такой аргумент, что js знает каждый веб-придурок, поэтому порог вхождения будет ниже, но на деле получилось не совсем так — нода — это вам не dom веб-страницы корёжить, нода — это очень близко к "угореть по хардкору".
И самое главное-то забыл. Нода вся насквозь построена на событийной модели. Всё api асинхронно — результат получаешь "когда результат готов" — через события или callback. Висящий клиент не требует такой дикости как "дочерний процесс\поток". И большинство времени нода потребляет около 0.0% CPU, так как не делает ничего, когда событий нет.
server-side javascript. вот тут можешь спросить: http://mr-aleph.livejournal.com/
одного понять не могу: зачем?
because they can!
Не "because they can", а потому что в js есть анонимные функции, да к тому же функции — first class object. Движок v8 от ребят из гугла адски быстр. А наиболее благоприятная область применения ноды — задачи, где есть множество клиентов, которые стремятся держать постоянные соединения с сервером. Так что эта связка "libevent + ядро-скрипт + некоторое api + сервер-как-один-персистентный-процесс" получилась весьма приятной — памяти ест мало, работает шустро и держит тысячи полупассивных клиентов не напрягаясь. Некоторые люди делают на ноде полноценные движки\сайты, параллельно оглашая интернет радостными воплями. Некоторые индивиды используют ноду вообще для задач вне веб. Особо сильной блевотины в сторону ноды я не встречал, хотя часть людей, например, плюются от спагетти коллбэков (те, кто не умеет их готовить), а большой пласт быдла, оказывается, вообще не может в асинхронное программирование. Некоторые когда слышат кейворд "nodejs" любят сразу же заикаться про erlang, да упоминать, что есть пара фреймворков на хаскелле, которые обгоняют ноду на веб-helloworld'ах. А ещё гуляет такой аргумент, что js знает каждый веб-придурок, поэтому порог вхождения будет ниже, но на деле получилось не совсем так — нода — это вам не dom веб-страницы корёжить, нода — это очень близко к "угореть по хардкору".
И самое главное-то забыл. Нода вся насквозь построена на событийной модели. Всё api асинхронно — результат получаешь "когда результат готов" — через события или callback. Висящий клиент не требует такой дикости как "дочерний процесс\поток". И большинство времени нода потребляет около 0.0% CPU, так как не делает ничего, когда событий нет.
я почти прослезился. нет, ну правда