PHP很烂?我的看法

今天,我在玩聚上看到一篇台湾程序员的文章《PHP很烂》

我也想谈谈,我对这个问题的看法。错误肤浅之处,希望大家批评指正。

======================

PHP很烂吗?

作为一种计算机语言,它确实有很多缺点,而且是重大缺点。但是这并不是关键所在,哪一种语言没有缺点呢?我认为,PHP目前最大的问题,不是语言本身,而是它的发展方向出现了偏差。

PHP的开发团队,好像正在致力于将它从"个人工具"升级为"企业工具",导致它的处境很尴尬。说它是个人工具吧,却有很多复杂的高级语言特性;说它是企业工具吧,复杂项目的开发效率和性能,却比不上其他一些语言。结果到头来,不仅"易学易用"的特色丢掉了,而且由于性能问题,依然很难在大型项目中推广。

在我看来,问题出在PHP 4到PHP 5的那一次升级。PHP 4是一种个人工具,很像shell语言的再包装,属于过程式编程,确实易学易用,是个人网站的最合适开发语言。但是,PHP 5就完全不同了,大大增强了面向对象编程(OOP)功能,到了5.3版本,更是添加了名称空间(namespace),甚至连lambda函数都支持了。看上去,PHP的设计者似乎想把这种语言变成下一个Java。

这样做的结果,就是PHP不再是一种容易学习的语言了。初学者必须像学习Java那样,记住那些繁琐的OOP语法,才能用好PHP 5。更糟的是,由于语言变得复杂,带来解释器的性能下降。我记得看过一篇文章,里面说同样配置的硬件,PHP 5.0比PHP 4.3慢30%,那么想必最新版本PHP 5.3就更慢了。要知道作为一种脚本语言,其实PHP 4的速度就已经很慢了。

这就是目前PHP的问题:作为一种个人工具,它的优势正在丧失;作为一种企业工具,它依然不行。

我就不明白了。为什么一定要把PHP变成一种复杂语言呢?支持OOP真的有那么重要吗?脚本语言Bash够简单吧,事实上,很多人因为它太简单了,都不认为它是一种严格意义上的编程语言。但是,就是这样一种简单语言,却是Linux系统的操作基础,每一个Linux程序员都离不开,每天都在大量使用。PHP也一样啊,它的优势就是简单易用,用户只希望在十分钟里写好一个小型的留言板,并不打算用它来建造罗马,你又何必非要让它同Java一样复杂呢?难道非要用户手册超过1000页,才感到心满意足?你看,这么厚的用户手册,不管什么功能,只要你说得出来,我都支持!

另一方面,由于语法越来越复杂,而PHP是一种书写很自由的语言,结果就导致很容易写出混乱得可怕的代码。正如XML格式创造者之一的Tim Bray所说:

"我很肯定,你能够用PHP写出干净、易读、可维护的代码。但是显然,你稍一放松就做不到这一点了。"

我觉得,现在可能是PHP代码分叉(fork)的时候了。未来的PHP最好有两个版本:一个版本面向企业级应用,支持高级的OOP功能,着眼代码的可维护性和可协作性;另一个版本面向个人应用,强调易学易用,着眼快速和高效的网站开发。

(完)

评论