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替代品、能让开发工作再一次提速的东西。

我每天使用Rails,修改一个喜爱这种框架和语言的有经验的Rails专家所写的Rails应用,七个月后,我却不能断言Rails是一个正确的选择了,原因很难表达。我这篇文章的目的就是想试图把原因说清楚。

我的主要的抱怨,必须要提的,就是性能。我之前就说过这种问题不应该被当作一种语言的致命缺陷,它只是语言实现中的暂时的问题。所以我不能把这当作一个真正的问题,尽管它是我把现在的应用移植到PHP的最主要的一个原因。我可以让Rails跑的跟PHP一样快,但那需要提供2到4倍高的硬件条件。我估计五年内将还会这样,五年后我也许不必把程序移植到PHP。但现在,它不能满足我的要求。

第二,我讨厌Active Record。Active Record是一种模式,并不是Ruby固有的,在Rails的最新版本里是可选择的,但是对它的使用和这种模式已经深入到了Rails的DNA里了。我之前曾解释过为什么我认为这数据库上的ORM不是个好做法,所以我不会再重复解释,但有一点我需要总结的就是你省去了手工写CRUD所获得的效能要大于ActiveRecord做傻事所损失的效能,要花时间搞清楚它是怎么工作的,顺应框架原则,防止它做这样的事情。

第三,我十分的不信任代码自动生成。工具能帮你生成模板式的代码很有用,但你的程序了却多出了成堆的毫无用处的代码来实现这些目的,这就变的不好了。代码生成喜欢“神奇推理”,因为生成器并不确定代码某些特别有用的特征究竟是专门写出的还是语言环境固有自带的。神奇推理是危险的。

代码生成让我想到了Ruby on Rails的一个可能是最根本的问题,就是它并不是一种语言。Ruby是一种语言。但Ruby,它在解决了PHP上的一些基本问题外,并没有解决核心问题,那就是现代web应用需要一系列的改进:像routing,model/view分类,drop-in功能性等都是很常见的特征。Rails里有,但这跟PHP里的Zend,Symfony 和 Code Igniter之类的MVC框架一样只是绑上去的绷带。

那么缺的是什么?

能够取代PHP的语言必须十分优秀于PHP,就如同PHP优秀于Perl一样。它必须承担起web应用的主要实现任务,就像PHP那样,你的代码的主要功能就是输出网页 —— 一个有点激进的要求,它要不适合去做其它的事情,例如当中shell脚本语言。我希望有这样一种语言,它能够承担起我开发一个MVC式的web应用时的所有的任务,所有功能都是核心内置的,不能仅是一个程序包。

问题是,没有这样的一种语言。有一段时间服务器端JavaScript看起来将会成为下一个重要的语言,它能统一web应用前端和后端的编程语言。但是这些JavaScript上的伟大思想总是徘徊在一些跑题的行为上,比如nodejs:事件驱动模式非常的激进和强大,能让你开发出高性能的应用程序,最大化的使用新式硬件,但这是一种开发服务器端应用程序的思路,不是web页面。并且你仍然需要去写一大堆可怕的web页面。另外一些CommonJS的成果例如ejScript开始尝试着取代PHP,但仍没有解决框架问题。

仍在等待

我不得不做出结论,PHP的替代者还不存在。Ruby on Rails很好,但并不比一个PHP之上的类似的MVC框架强多少,更别提由于Ruby自身的效率不高和ActiveRecord的ORM恶搞带来的双重打击。Python看起来并不感兴趣于作为下一代的web语言,JavaScript的服务器端解决方案还刚刚只是个开始。

我等待下一个大目标的出现。我希望能从PHP上转走,真的。我可不想成为Perl式的古董。但不管怎样,这种语言看起来还不存在。我判断错了吗?

时间: 2024-07-28 13:19:52

PHP将死。何以为继?的相关文章

大咖|英特尔中国研究院院长宋继强:我们是如何与李宇春打造全球第一支三维人脸特效的音乐视频的

上个月底,李宇春一支据说筹备时间长达6个月的mv正式发布.这首基于英特尔人工智能技术的MV,将电子曲风的浪漫情歌与尖端科技结合,一上线即火遍全网.在11月15日刚刚结束的2017英特尔人工智能大会上,英特尔中国研究院院长宋继强揭秘了这支有三维人脸特效的音乐视频是如何实现的. 此外,英特尔全球副总裁兼中国区总裁杨旭本次大会上宣告了英特尔在人工智能领域的三大战略方向:创新技术.广泛合作.推动应用.本次大会以全栈作为核心关键词,发布了从前端到后端的一系列最新研究成果. 例如,英特尔在近期推出了BigD

中国继美国之后成功研制千万亿次超级计算机

          我国首台千万亿次超级计算机系统--"天河一号"由国防科学技术大学研制成功.在今天中国高性能计算机TOP100组织公布的2009年度前100强排名中,天河一号高居榜首.有关专家认为,"天河一号"的诞生,是我国战略高技术和大型基础科技装备研制领域取得的又一重大创新成果,实现了我国自主研制超级计算机能力从百万亿次到千万亿次的跨越,使我国成为继美国之后世界上第二个能够研制千万亿次超级计算机系统的国家.         "天河一号"在科

郭继:多种盈利方式但以网站为主

主持人:您好,感谢您这次接受我们大赛组委会的专访.想围绕此次大赛,对您的个人以及网站做一系列的采访.您自己先简单介绍一下个人和这次参赛的网站. 郭继:我叫郭继,我办了一个美容网,名字叫"美酷网",主要是为了给美容爱好者提供一个学习和交流的平台.在我们网站上可以搜索到一些主流美容产品,还有一些使用的情况,方便初学者了解美容产品.还可以了解更多的化妆技巧.我们还会有一个美容的论坛,提供这个场所的目的是让美容爱好者在一起聊天.交流.交友.在论坛里还可以交易,作为一种交易的平台,这是我们网站的

陈继柔:B2B网站平台推广优化健谈

看了很多文章,像上篇怎么借助b2b平台做推广都是教你怎么借助B2B网站平台优化推广的,其实高手真的是很多,他们写的文章确实是不错的,你可以在站长网,seo论坛,落伍,A5,tui18,28tui等地方找到大量的文章,为何这些人可以做的好呢,而大部分的人只在那里崇拜他们呢,其实真的不难,按照他们说的去做,的确可以做到你要的效果,而大部分的人只是在看,看过则以,看过 恩...这篇文章确实好,然后呢--继续崇拜那些高手吧.我很少写文章,让我写也是写不出个所以然,在这只是发表发表感慨而已,不过我对自己感

王继顺:分享如何三个月将新站PR直接做到3

这篇文章很早就想写一下了,但是一直比较忙,今天总算可以静下心来把自己的经验写下来分享给大家.相信大家的网站的PR值都有所增加吧,谷歌6月28日的PR值更新还是让一部分网站的PR得到了很大程度的提升,尤其是新站,提升的比较多.小站也得到了谷歌的眷顾,在建站的短短三个月时间内,PR值直接升到了3.下面我就把我的一些SEO优化经验分享给大家,希望对大家有所帮助吧. 在建站的前期,首先考虑的是域名和服务器的选择.在SEO优化的标准内,短域名比长域名有优势,域名中包含关键词比不包含有优势.服务器稳定性和打

王继顺:独创六点降低网站跳出率技巧分析

使用百度统计的用户可能会发现有一项数据"跳出率",很多新手不明白这是指什么意思,跳出率指仅仅访问了单个页面的用户占全部访问用户的百分比,或者指从首页离开网站的用户占所有访问用户的百分比.网站的跳出率在某种程度上反应了一个网站的质量,尤其是网站的内容的质量和内部优化,当一个网站的内容能够吸引网站访客的好奇,通过逐层的点击来获取自己想要的知识,这就大大的降低了网站的跳出率,这也从另一个方面体现出一个网站的质量或者权重.那么如何降低网站的跳出率呢?王继顺SEO总结了六点技巧分析分享给大家.

继百度首页改版后关于添加按钮的实例分析

2012.5.16日百度进行了首页的改版,如下图图一.   继2012.5.17日之后的星期四到星期五的更新,百度部分网站出现了添加到首页更能的按钮,如图二.当我搜索部分关键词,反馈的结果在第一位的会出现下图红圈中的提示添加到百度首页的按钮,下图分别是我搜索"新浪"和"淘宝"两个关键词的结果.   毕竟淘宝和新浪都是高访问的网站.高权重.高搜索指数的词,出现这样的结果也在情理之中,所以紧接着我搜索了麦包包,结果如下图.   在搜索"麦包包"这个词

王继顺教大家培养搜索引擎对网站的信任度

搜索引擎对网站的信任度表现在很多方面,很多站长都说自己的网站内容收录不及时,或者网站快照也更新的比较慢,网站的关键词包括长尾关键词都没有一个好的排名,假如我们的网站搜索引擎给予不错的信任度,相信这些问题都会迎刃而解了.我们在做网站优化的时候就应该注意尽量培养搜索引擎对网站的信任度,从而让网站具有一定的权威性.下面王继顺SEO就总结了五点内容培养搜索引擎对网站的信任度. 第一点:从建站初期的内容做起 新站在上线后,都需要大量的内容来丰富,很多站长都喜欢用采集的方式来丰富网站,但是这样的做法是不利于

演讲实录丨任福继 阔步迎接人机共生时代 --谈机器人智商和情商

阔步迎接人机共生时代 --谈机器人智商和情商 任福继 CAAI海外副理事长.日本德岛大学教授.日本工程院院士 任福继:各位上午好,今天要讲的题目好像有点奇怪,叫做迎接人机共生时代,主要利用这个时间讲讲机器人的智商和情商.     最近我们处在人类有生以来最大冲动的时期.今天是世界机器人大会,谈人工智能,人工智能与机器人关联事件,我们一想脑子里就浮现很多.     这几年我们提的包括工业4.0,中国制造2025,3月份的Alpha Go,深度学习,社会5.0.今天我们讲一下社会5.0,然后引出我们