Это уже какое-то время меня беспокоит.
В развернутом веб-приложении PHP можно загрузить измененный скрипт php и получить обновленный файл на веб-сервере без перезапуска.
Проблема? Ruby, Groovy и Python и т. Д. все «лучше», чем PHP, с точки зрения выразительности языка, краткости, мощности, ... вашей-причины-здесь.
В настоящее время мне очень нравится Groovy (через Grails), но на самом деле JVM не поддерживает хорошо (вообще) с производственной динамической перезагрузкой кода приложения. По сути, ошибки Permgen из-за нехватки памяти - это виртуальная гарантия, а это означает сбой приложения в любое время - не очень хорошо.
Фреймворки Ruby, похоже, несколько решили эту проблему из того, что я читал: у Passenger есть возможность динамически перезагружать измененные файлы в опрошенных каталогах при следующем запросе (таким образом предотвращая отключение подключенных пользователей, потерю сеанса и т. д.)
Автономный Python Я не уверен в этом; он может, как и PHP, разрешать динамическую перезагрузку скриптов Python без перезапуска веб-сервера.
Что касается нашей работы в Интернете, неизменно клиенты хотят внести изменения в развернутое приложение, независимо от того, насколько подробными и хорошо спланированными были спецификации. Сказать клиенту: «Конечно, мы реализуем это [простое] изменение завтра в 4 часа утра [чтобы не нанести ущерб подключенным пользователям]» не слишком удачно.
Где мы находимся по состоянию на 2011 год с точки зрения динамической перезагрузки и языков сценариев? Неужели мы навсегда обречены: мы полагаемся на удобство PHP или радости не-PHP и вынуждены перезапускать развернутое приложение?
Кстати, я вовсе не поклонник JSP, GSP и Ruby, шаблонов Python эквиваленты, несмотря на их перезаряжаемость. Это торт и съесть его тоже поток, где мы можем внести изменения в любой аспект приложения и не перезапускать его.