PHP 就是: Quick and Dirty
Java 就是: Beauty and Slowly
Ruby 就是: Quick and Beauty
python 就是: Quick and Simple
如果PHP要实现跨请求的持有内存资源,这意味着PHP必须实现对象内存分配机制和垃圾收集器,而这将意味着PHP语言的复杂性上升,PHP内存泄露的危险大大增加,最终将得不偿失。
其实我们应该跳出编程语言的简单对比,而比较一下不同的编程模型背后的哲学:
1、Java - controll whole world模型 单进程运行,进程内部多线程调度,所有的资源都自己提供。
2、Ruby - controll process模型 多进程运行,进程内部可以持有资源,带有GC,部分依赖外部资源实现(例如Cache)功能
3、PHP - controll request模型 多进程运行,进程不持有任何资源,不带GC,完全依赖外部资源实现扩展功能
比较和探讨一下3种不同的模型,以及他们的优势,劣势,长处,短处,适合做什么,不适合做什么。这才是一个有意思的话题。