欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

很多人喜欢PHP:论 Web 2.0 时代PHP的地位

程序员文章站 2022-04-29 14:45:35
...
随着所谓WEB2.0时代来临,程序员从来没有时代象今天那样受人注意,很多程序员对于语言的争论也从来没有象今天这样剧烈,JAVA、C++、PHP、ASP等等,最近又出来一个Ruby,加上Python。无数的FANS在中间进行争论不休,也就是在网路上,如果是在现实生活中,大概会象《倚天屠龙记》里描述的那样,会决战光明顶来定一个胜负,或者说定出天下第一大门派。而现在定出谁是天下第一大其实很方便,看一下哪个语言旗下的弟子人数即可。而现在最流行的统计方式,就是Google了,看看Google的搜索结果,基本就能判断出其在市面上的网站的使用情况:
  1. 约有5,760,000,000项符合 php 的查询结果
  2. 约有3,070,000,000项符合asp的查询结果
  3. 约有976,000,000项符合java的查询结果
  4. 约有327,000,000项符合perl的查询结果
  5. 约有238,000,000项符合python的查询结果
  6. 约有225,000,000项符合c++的查询结果
  7. 约有176,000,000项符合ruby的查询结果

这段时间葛优的光脑袋频繁曝光,总是喋喋不休的告诉俺们一个道理——用的人多的卡就是好卡。而如果套用这个光头明星的话,那就是,我,相信群众,从上面查询的结果大家可以看到,人民群众是很爱戴PHP的。

但如果你去问互联网的一些资深开发人员,PHP、ASP与Java,他们之间谁更好?一般来说,这个人都会告诉你,ASP就不用想啦,微软出的垃圾,PHP和Java是不错的选择,Java适合做大项目,PHP适合做一些短平快的东西。如果你还继续问,这个高手还没有失去耐心的情况下,他大体都会说,你看世界上最大的互动平台eBAY,就是用JAVA写的,中国最大的社区CHINAREN校友录也是JAVA,而很多小的网站,初期都是PHP,后来各种原因都必须改到JAVA上面去。这种感觉就是像说,如果你想学武功以便出去砍人,或者说在江湖扬名立万,那么行军拳你就不用练啦,这个东西是*拿出来强身键体的,五虎断门刀这个东西你用来对付一般的流氓是绰绰有余,但是碰到绝顶高手你就歇了。而Java有点象太极拳,当今武林最大的门派之一SUN的首推武功,是对负高手的不二选择,于是很多人就认定:PHP是低等武功,练到最好的结果也就是给赌场看看场子,只有练就Java才能做武林盟主。

俺和很多公司的技术经理聊的时候,经理们说很多人都有这种心理,他是使用Java的,而你如果让他写PHP,,很多人会有一种受到侮辱的感觉,不是觉得经理不重视他,就是在想自己什么时候得罪了经理,竟然被发配到PHP这种偏远的小地方去了。越是大公司,PHP的项目越难开展起来,这个让很多技术老大们很是郁闷,但也很是奇怪。所以,下面,咱们一起分析一下形成这种被人民群众认可,却不被很多开发人员看好的语言——PHP。

PHP 进入中国是98,99年,进入的时候,初期应用的典型是Chinaren校友录,还有很多的互动应用,它以开发方便,容错性好,迅速成为很多网站的选择。到了00,01年,互联网泡沫的时候,很多都是PHP完成对网站的开发,它的流行有以下几个原因:

兼容C的语法,容易掌握

就这一点来说,它保证了开发人员的稳定来源,基本上说,每个学计算机的人员,没有不学习C 语言的,所以都能在一到两周左右快掌握这个新的语言,然后经过简单的指导,就能开始初期的开发工作。单从程序本身的开发而言,写了三年以上的程序员,和开发了半年以上的PHP程序员差别不是太大。

运行的快速

在网路上面,速度是很重要的问题,这一点来说及时是对PHP非常不屑的人也不得不承认PHP得运行速度还是比较令人满意的,只不过由于没有很实际的数据,只是很多人感觉,所以这一点来说,没有非常有力的证据证明。

非常强的容错,很好的鲁棒性能

很多写PHP的人员应该有这个感觉,举个例子,你申请一个PHP中的变量,做数字也行,做数组也行,做字符串也可以。我有时候都在想,这么随意的风格,他是如何保证效率的,只能说写这个语言编译器的人实在太不可思议了。

丰富的函数和简单的操作

能想到的一些操作,如果不是太罕见,你基本都能找到函数库来解决,典型的就是读文件的内容读到一个变量,到现在为止,我知道的好像只有PHP提供一个专门的函数来解决这个问题

以上四个特点,用PHP开发程序非常得普遍,但作为程序来说,这些看起来非常不错的特征也形成PHP的一些问题,造成在很多资深的程序员对其评价很低。

首先第一条,也是让很多资深的程序员对其尴尬不已的,做了3年以上的PHP程序员,当一个初学者问其一些技巧的时候,他们突然发现,PHP这种语言实在是没有好说的,看它的帮助就能解决问题或者看一下教程。不像Java,一个仅仅写了半年左右的Java开发人员和3 年以上的Java开发人员可以说有本质的区别,后者可以讲很多JAVA的开发架构和分布问题,讲的那个菜鸟满脑浆糊,满脸崇拜。而俺在PHPCHINA.CN讲课的时候,发现每个人在听PHP语言一些很细节的东西时都是昏昏欲睡,大部分都在开小差。我想这和PHP语言通俗易懂,没有什么挑战性的概念有很大的关系。

第二条还是效率的问题。市面上对于WEB语言的效率,PHP快只是感觉,并没有一个非常有力的测试证明它比别的语言快很多,而JAVA和ASP却有一个非常有名的一个测试性能比较。

有人做过试验,对这三种语言分别做循环性能测试及存取Oracle数据库测试。在循环性能测试,JSP用了20000*20000的循环 共四秒钟。而ASP、PHP测试的是2000*2000循环(少一个数量级),分别用了63秒。PHP测试的是2000*2000循环 84秒.数据库测试中三者分别对Oracle8进行1000次Insert,Update,Select和Delete:

  1. JSP需要13秒
  2. PHP需要69秒
  3. ASP则需要73秒

一个有意思的测试,说明一个问题,对于大量的运算,PHP看起来不是一个太成功的语言,这个也是很多高手不是很看好PHP的一个实际例证明,然而实际是这个仅仅是一个有点BT的测试,谁会在互联网上写一个循环400万次循环以上的一次请求应用,我倒很想见识一下。实际上,在WEB应用中这种循环或者说密集的运算非常罕见,如果有,首先该考虑的也是算法的优化,减少循环的次数,然后才是考虑语言本身。并且就算是必要的,也不是Java、PHP和ASP能够解决的,这个时候,如果用的比较多,C会粉墨登场,再多一点,可以使用汇编,非常多的情况下,芯片的设计我想是比较好的选择,怎么样都不会轮到Java这种语言,所以用这种方法来评价PHP是非常不妥的。

而对于PHP开发中较好的鲁棒性,你怎么写它都能运行,并且很稳定,从而也造成PHP程序员的散漫,程序的开发非常随意,又加上中国互联网产品开发的紧急性,几乎都没有很好的文档,从而后期PHP程序的维护成为无数项目经理的噩梦。这一点也是很多高手或者说资深程序员对于PHP评价很低的地方,而当很多项目经理需要要规范开发的时候,却又发现无从规范起,Java有Struts、MVC……而PHP却缺乏成体系的开发架构,从而也成为PHP很难成为企业应用系统的选择。

至于丰富的函数操作,这个大概是唯一没有被人诟病的地方,但是 Java、ASP以及Perl都有很丰富的函数,PHP在这一点没有非常大的优势,所以只是成为人们选择它的一个不是很重要的理由。