随着所谓WEB2.0时代来临,程序员从来没有时代象今天那样受人注意,很多程序员对于语言的争论也从来没有象今天这样剧烈,JAVA、C++、PHP、ASP等等,最近又出来一个Ruby,加上Python。无数的FANS在中间进行争论不休,也就是在网路上,如果是在现实生活中,大概会象《倚天屠龙记》里描述的那样,会决战光明顶来定一个胜负,或者说定出天下第一大门派。而现在定出谁是天下第一大其实很方便,看一下哪个语言旗下的弟子人数即可。而现在最流行的统计方式,就是Google了,看看Google的搜索结果,基本就能判断出其在市面上的网站的使用情况:
这段时间葛优的光脑袋频繁曝光,总是喋喋不休的告诉俺们一个道理——用的人多的卡就是好卡。而如果套用这个光头明星的话,那就是,我,相信群众,从上面查询的结果大家可以看到,人民群众是很爱戴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 だけであることを知ってください
上記の 4 つの特性は、PHP でプログラムを開発する場合に非常に一般的ですが、プログラムとしては、これらの一見非常に優れた機能も PHP ではいくつかの問題を引き起こし、問題を引き起こします多くの経験豊富なプログラムで、メンバーからの評価は非常に低かったです。
まず第一に、3 年以上 PHP プログラマーをしている多くの上級プログラマーにとって、初心者がいくつかのヒントを尋ねたとき、彼らは PHP には実際には何も良いものがないことに突然気づきました。この言語について言うなら、ヘルプを見るかチュートリアルを参照することで問題を解決できます。 Java とは異なり、開発歴が半年ほどの Java 開発者と、3 年以上開発した Java 開発者との間には根本的な違いがあり、後者は Java 開発アーキテクチャとディストリビューションの問題について多くのことを話すことができます。と、それを語る新人さんは憧れの気持ちでいっぱいです。 PHPCHINA.CN で講義をしていたとき、PHP 言語で非常に詳しいことを聞いていると、みんな眠くなってしまい、ほとんどが放席になっていることがわかりました。これは、PHP 言語が理解しやすく、難しい概念がないことが大きく関係していると思います。
2 番目のポイントはやはり効率に関するものです。市場に出回っている WEB 言語の効率に関しては、PHP が他の言語よりもはるかに高速であることを証明する非常に強力なテストはありません。しかし、JAVA と ASP との間の非常に有名なテストがあります。
これら 3 つの言語についてループ パフォーマンス テストと Oracle データベース アクセス テストを行う実験を行った人もいます。ループ パフォーマンス テストでは、JSP は 20000*20000 のループを合計 4 秒間使用しました。 ASP テストと PHP テストは 2000*2000 サイクル (1 桁少ない) で、それぞれ 63 秒かかりました。 PHP テストは、84 秒間の 2000*2000 ループです。データベース テストでは、Oracle8 で 3 つがそれぞれ 1000 回の挿入、更新、選択、削除を実行します。
大量の計算に関して、PHP はあまり成功した言語ではないようです。これも興味深いテストです。多くの専門家にとって、私は PHP の実践例について楽観的ですが、実際には、これは単なる BT テストであり、インターネット上で 400 万回以上ループする単一のリクエスト アプリケーションを誰が作成するでしょうか。見てみたいです。実際、このようなループや負荷の高い操作が WEB アプリケーションで発生することはほとんどありません。存在する場合、最初に考慮すべきことは、アルゴリズムの最適化とループの数の削減、そして言語自体の最適化です。それが必要になったとしても、現時点ではJavaやPHP、ASPでは解決できず、もっと使うならアセンブリが使えると思います。チップの設計が Java のような言語になることは決してないので、この方法を使用して PHP を評価することは非常に不適切です。
PHP 開発の堅牢性については、どのように書いても動作し、非常に安定しているため、プログラムの開発が非常にカジュアルであることも相まって、PHP プログラマーの関与を避けることにもつながります。中国のインターネットとの連携 製品開発の緊急性により、適切なドキュメントがほとんどなく、その後の PHP プログラムのメンテナンスが無数のプロジェクト マネージャーにとって悪夢となっています。これは、多くの専門家や上級プログラマーが PHP について低い評価を持っている理由でもあります。多くのプロジェクト マネージャーが開発を標準化する必要がある場合、Java には Struts や MVC があるが、PHP にはシステムが欠けていることに気づきます。開発アーキテクチャにより、PHP がエンタープライズ アプリケーション システムの選択肢となるのは困難です。
豊富な関数の操作に関しては、おそらくこれが唯一批判されていませんが、Java、ASP、Perl はいずれも非常に豊富な関数を備えているため、この点では PHP に大きな利点はありません。それを選ぶ理由はそれほど重要ではありません。