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

Как работают языки программирования?

Здравствуйте, ответьте, пожалуйста, на глупый вопрос. Работал только с пхп и node.js.
Вот такой код:
var userCounter = 0;

app.get('/', function (req, res) {
  userCounter ++;
  res.send('user counter = ' + userCounter );
});


В пхп каждый раз будет выдавать 0. В ноде каждый раз будет прибавлять единицу. То есть в случае с нодой - это такой запущенный один раз процесс, который будет работать, пока его принудительно не остановить, или не произойдет ошибка.
Как работают другие языки программирования? Java, C#, Ruby, Python, Perl? Полагаю что большинство из них работают как node. Есть ли такие, которые работают как пхп?
  • Вопрос задан
  • 700 просмотров
Подписаться 2 Оценить 2 комментария
Решения вопроса 1
@xfg
Все работают одинаково. Скрипт на PHP может быть запущен как демон и работать пока его не остановить. Равно как и в Java, C#, Ruby, Python, Perl можно сделать так, чтобы скрипт каждый раз умирал.

Строго говоря node.js это не язык программирования, а среда для исполнения javascript кода. Во многих языках есть аналогичные non-blocking i/o платформы, в php это reactphp, в python это twisted, который появился задолго до появления node.js.

Вы сами решаете как будет работать ваша программа, либо как демон, либо запускаться каждый раз заново. Это не зависит от языка программирования. Просто в одном языке может быть более распространен один подход, в другом другой. Но это не означает, что в данном конкретном языке програмирования нельзя реализовать другой подход.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@void_phoenix
Java, C# также запускают процесс, который будет работать пока не остановишь, что позволяет сохранять значения переменных между запросами. Или не сохранять, если поместить объявление переменной в функцию-обработчик, тогда будет как в PHP.
Ответ написан
@vshvydky
во-первых в пхп этот код работать не будет, во-вторых переменные что в js что в php инициализируются на старте "процесса" и живут в зоне своей видимости до окончания его работы (с небольшими оговорками, такие как очистка переменных , работа сборщика мусора). Разница в подходе, нода инициирует процесс 1 на множество подключений, пхп же работает как интерпритатор, и вызывается веб сервером на каждый запрос как отдельный процесс, а значит и переменные инициализируются каждый раз. Отдельно про запуск функции с колбеком в пхп, ты серьезно считаешь , что в пхп это вообще будет работать?
Ответ написан
Ваш ответ на вопрос

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

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