background image

PHP 十年前灭掉 Perl 如今 PHP 将面临一场危机

本文来源于国外一位博友的文章,他在博客中写道:

“是到了 PHP 落幕的时候了。就在

我这个顽固的

PHP 分子正要把一个现有的 Ruby on Rails 代码库转换成 PHP 时,我要说这

样的话

”。

历史在重演

作者认为

PHP 将亡,因为我以前见到过。大概十年之前,PHP 灭掉了 Perl。当然了,并

不十分彻底;它还坚守在某些环境里,它还有相当可观数量的顽固粉丝,遗留下来的应用
程序也需要维护,持续几十年。但这种语言对于新一代的人,特别是

web 开发者,它在

1999 年就开始灭亡了,到 2005 年左右几乎完全死了。

作为在那个时期出现的新的

web 开发者,事情显的很明白而且水到渠成:Perl 已经不

适应新的应用开发环境了。在

Perl 里,页面需要冗长的公式化 的 CGI 方式实现,而这些在

PHP 里却可以用基本的、缺省的编程方式实现。Perl 语言里到处都是旧时代的特征 — 引用,
不方便的数据结构,还有其他许多的小的古怪语法语义

 —— 这使得 web 开发冗长,不稳

定,不方便。无怪乎没有一个出色的

web 应用是用 Perl 写成的,而用 PHP 你却能做的又快

又简单,尽管

PHP 存在着在当时就 显而易见的缺陷。

1999 年支持 Perl 反对 PHP 的争论有很多:Perl 要快的多,有更多的程序库和驱动支

持,

CPAN 是个神奇的地方,里面预先写好的代码能让 你绝大部分任务省去 80%的工作量。

现在看起来这些就有点可笑了,但

“PHP 缺乏可扩展性”却是个真正的缺点。但总之 PHP 赢

了,因为上面所说的这些问题

 并不是这种语言固有的。PHP 解释器可以变得更快,程序库

可以被开发出来,

PERA 和 PECL 目前已经变得相当庞大,这还不包括各种厂商希望人们

去使用他

 们的 API 而提供的非正式的程序库。

时间在推移

十年之后,我可以感觉到历史大潮正在重演。开发人员对语言的期望在前进。如果说

Perl 最缺乏的是 PHP 里令人惊讶的灵活的“关联数组”(也就是智 能哈希表),那么 PHP 现在
缺乏的就是

lambdas 和方法链(method chaining)了。同时 PHP 往往是用在只要 20 行代码就能

写出一个网页的地方,而如今却是如果你不使用什么

MVC 框架之类的东西就会被认为没

有把事

 情做对。公式化的代码表明了问题所在:这种语言需要一个框架来替人们做这些事

情。

退回到以前,我认为那些顽固的使用

Perl 来做 web 开发的人很傻。现在,经历了十年

PHP 开发,我处在相同的位置上了。我可以在一个小时里用 PHP 敲出一个不错的网站,

在一两天里开发出一个优秀的网站。

PHP 的性能众人皆知,我可以无限的扩展它。我雇佣过

的每个开发人员都会它,我集成过的每个

 系统里都有一个用它写出的打包的代码库。我深

陷于

PHP 的方便性,尽管它对于我的任务并不是一个合适的语言。

转向

Ruby on Rails

最明显有潜在能力继任

PHP 的是 Ruby on Rails。Ruby 是一个新的、干净的语言,具有现

代的语言特征,松散、优雅的语法

(很像 Python)。Rails 省去了我们常见的任务,省去了集成

 

web 应用里的公式化的做法,把 PHP 里三、四行的习惯写法变成了 first-class 语言结构。这看
起来极其像我需要的

PHP 替代品、能让开发工作再 一次提速的东西。