PHP是一种没有前途的嵌入式脚本语言?
今天在CSDN查资料时看见一篇奇文,题目叫做《PHP是一种没有前途的嵌入式脚本语言》。
理由如下:
PHP缺乏规模支持。
缺乏多层结构支持。
PHP极其没有道理地实现了一个混乱的不能统一的数据库接口支持。
看见这篇文章我感到十分的遗憾,这种无责任语言比较又现身了。
从该文章给出的理由看,这位作者对PHP的了解很大程度上来源于国内的劣质计算机书。如果他认真查看过PHP官方站点上的文档就不会犯某些低级错误。这里我无意将PHP和其他语言进行比较,只是想向不了解PHP的人澄清一下事实:PHP不是你看见的样子。
首先我们来看原文:
一,PHP缺乏规模支持。
与之类似的嵌入语言,一个是ASP,一个是JSP。前者可以通过Microsoft Windows的COM/
DCOM获得ActiveX支持,后者可以通过SUN Java的Java Class和EJB获得支持
如果说PHP缺乏商业公司支持(缺乏不意味着没有),那么这个观点是很客观的。PHP的确没有像MicroSoft,Sun这样的大公司支持。在大型的分布式系统上,PHP也的确很弱,不过请记住,它只是一个脚本语言。就这点来说,PHP已经做的足够好了。实际上,在PHP4中,调用COM和Java是很Easy的事情,如果按原文作者的观点来看,PHP同时有MicroSoft和Sun公司在支持J
二,缺乏多层结构支持。
对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼
此分开,而且同层也可以根据流量分开,组成二维阵列。ASP可以通过DCOM和微软的Tra
nscation Server来获得这种结构支持,JSP可以通过EJB/CORBA以及众多厂商的Applica
tion Server来获得这种结构支持,但PHP没有这样的条件。
实际上,大多数的PHP应用采用的是多层结构,而不是对PHP一知半解的人眼中的两层。规模化的PHP应用都至少分成HTML模板(用户界面层),PHP核心类(逻辑层),数据抽象层和实际数据库层。
从上边的图大家可以看出实际上PHP同样可以是基于多层结构的,它支持多层,但是不强调多层,程式的架构要由实际的情况决定,不是多层就一定好。在这点上,我们也可以看见PHP的设计思想:技术为应用服务。高质高效的完成任务是第一位的。至于分布式运算,就用Java做好了,然后将它整合到我们的PHP项目中不就完了。
三,PHP极其没有道理地实现了一个混乱的不能统一的数据库接口支持,比如对Oracle,
MySQL, Sybase的接口,彼此都不一样。这一点让人感觉不可思议,而且也使它在电子
商务中运用受阻----连PERL都通过DBI而获得一个抽象的数据库接口!
这的确可以说是PHP的一个缺陷,但是,从很久以前开始,PHP程序员就注意到了它。致力于改善它的努力从来没有停止过,到现在已经颇有成效了。那就是ADODB类。通过这个类,你可以使用同样的接口操作包括Acess在内的各种数据库。它也就相当于上边图中的数据抽象层,当然,你也可以自己实现数据抽象层。PHP包中并不包含一些实际上广泛应用的支持——如果需要,你可以自己加上。需要定制的组件支持,也是PHP高效的原因之一。
然后我们来看看PHP的前途。既然是前途,就不能只把目光放在PHP4,而对已经处于β版本的PHP5视而不见。PHP4有一个很大的缺陷,它对类的支持是不完整的,你只能对类进行伪封装。在PHP5中OO得到了全面的支持,而语法于Java更为接近。同时,PHP5开始像JSP一样将进程保存在内存中,而不再为每一次访问创建一个进程。可以看见,PHP正在把其他脚本语言的优点逐渐整合,显然,这样一种富于活力的语言将会成为脚本语言中的强者。
另外,PHP主要用于中小型企业架构,其实只要想想中小企业和巨型企业的数量比例,你就会发现,或者这里才有鱼。
PS:只要能最好的完成应用,语言是次要的,它只是一种工具而已。当然,每个人都有自己的选择,我不反对你表达对某种语言的喜爱,但是请不要通过贬低一种其他的语言尤其是你不熟悉的语言来实现。