PHP 至少是一门有趣的编程语言。这门语言和用它构建的程序通常属于两种设计哲学。在这里,我所说的并非软件开发生命周期,如瀑布或敏捷,而是关于软件应该是什么样的基本思想。这些思想被称为“正确的方式”(The Right Way)和 “更糟就是更好”(Worse is better)。
PHP 又是一门相当奇怪的编程语言。当人们抱怨这门语言“很槽糕”时,他们并没有说错。这门语言确实有很多不好的地方。搁在以前,这门语言还有更多糟糕的问题。嘲笑 PHP 的博文《全面解析 PHP 的槽糕设计》(PHP: a fractal of bad design)确实有几个正确的观点,即使这些观点在九年前发表时就已经过时了。
1991 年,Richard P. Gabriel 发表了一篇文章《Lisp:好消息,坏消息,如何赢得大》(Lisp: Good News, Bad News, How to Win Big)。这篇文章的论点是,在软件设计和寿命方面,“更糟就是更好”的哲学将是更好的选择。他之所以得出这一结论,是因为他意识到出现了两种不同的程序设计流派,他分别将之命名为“麻省理工学院 / 斯坦福风格”(MIT/Standford Style),或者“正确的方式”,以及“新泽西风格”(New Jersey Style)或者“更糟就是更好”。
这场争论的关键是用 LISP 和 C 作为例子来说明为什么“更糟就是更好”。对于 LISP 程序员 Gabriel 来说,LISP 是一种比 C 更好的语言,速度和 C 一样快,而且 Common LISP 的设计、开发和标准化已经花了很多年。定义该语言的规范吸取了所有不同的 LISP 的精华,而现代开发环境对于 LISP 开发者来说是最好的。
今天,你可以用 PHP 开发 Web 应用程序。五年后,你仍然可以用 PHP 开发 Web 应用程序,只不过会增加一些新特性。但是,语言本身的完整性已经符合今天所需。如果未来有需要,我们可以随时修改语言或为它添加新功能。
更糟就是更好吗?
Gabriel 承认,“更糟就是更好”的哲学指的是设计看起来很糟糕,也许不应该作为更好的选择。唯一的问题是,当他审视这两种哲学时,与麻省理工学院 /“正确的方式”的设计哲学相比,“更糟就是更好”最终仍然是更灵活的选择,“具有更好的生存特性”。如果我们看一下 PHP,就可以证实“更糟就是更好”这一观点。