这一直困扰着我一段时间。
在已部署的 PHP Web 应用程序中,可以上传更改的 php 脚本并让 Web 服务器获取更新的文件,而无需重新启动。
问题?Ruby、Groovy 和 Python 等在语言表达能力、简洁性、功能性等方面都比 PHP“更好”,...your-reason-here。
目前,我真的很喜欢 Groovy(通过 Grails),但现实情况是 JVM 在应用程序代码的生产动态重新加载方面(根本)做得不好。基本上,Permgen 内存不足错误是一种虚拟保证,这意味着应用程序随时崩溃——不好。
Ruby 框架似乎从我所读到的内容中解决了这个问题:Passenger 可以选择在下一个请求时动态重新加载轮询目录中的更改文件(从而防止连接的用户断开连接、会话丢失等)。
独立的 Python 我完全不确定;它可能像 PHP 一样允许在不重新启动 Web 服务器的情况下动态重新加载 python 脚本。
就我们的 Web 工作而言,无论规范多么详细和精心计划,客户总是希望对已部署的应用程序进行更改。告诉客户,“当然,我们将在明天凌晨 4 点实施 [简单] 更改 [以免对已连接的用户造成严重破坏]”,这不会太顺利。
截至 2011 年,我们在动态重新加载和脚本语言方面处于什么位置?我们是永远注定要被 PHP 的便利所束缚,还是因为非 PHP 的乐趣而被迫重新启动已部署的应用程序?
顺便说一句,我一点也不喜欢 JSP、GSP 和 Ruby、Python 模板等价物,尽管它们可重新加载。This is a cake & eat it too thread,我们可以对应用程序的任何方面进行更改,而不必重新启动。