Задать вопрос
@kirill-93

В чем отличие способа работы nodejs, python и php?

Здравствуйте!
Стал изучать nodejs, до этого из серверных ЯП работал только с PHP и немного с Python.
Работают эти технологии немного по-разному, но я не уверен, что я все правильно понимаю. Я объясню на пальцах, как я понял их работу, а вы, пожалуйста поправьте, если я ошибаюсь.
Так вот PHP и Python работают одинаково: приходит запрос и веб-сервер передает исполнение запроса обработчику ЯП.
То есть такой скрипт:
i = 1;

print(i);

i++;

Выведет и в PHP и в Python 1. Он (скрипт) каждый раз будет запускаться заново, как будто в первый раз. И, получается, что в этом случае оба этих языка созданы, чтобы умирать?
В nodejs, в отличие от вышеперечисленных языков запускается что-то вроде бесконечного цикла, и все входящие запросы попадают в него и обрабатываются. И псевдокод выше будет выглядеть так:
i = 1;

server.on('connection', () => {
    print(i);

    i++;
});

И выводить он будет всем разные цифры.
То есть nodejs специально сделан для именно такой модели работы. Для работы с "сохранением состояния".

Теоретически, можно и PHP заставить работать как nodejs, примерно так:
$i = 1;

while (true) {
    $data = getData();//Каким-то образом принимать данные извне
    send(i);
    $++;
}

И запустить в виде демона.
Но тут проблемно организовать взаимодействие с этим демоном извне (и возможно ли это сделать? как?).
Итог: php и python выполняются и "умирают", а nodejs "живет", пока его не перезапустить или не сломать. Тут у меня еще вопрос: А как работают другие ЯП? Например java на сервере или go? Какая у них модель работы?
Буду очень признателен за развернутые ответы.
Спасибо!
  • Вопрос задан
  • 1005 просмотров
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
PHP, Python, NodeJS, Go, Java — они все умеют работать в виде демонов, штатно.
И их всех можно заставить работать в режиме запуска скрипта на каждый запрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы