論Web 2.0時代的PHP

日期:2006-10-01  作者:喜騰小二  來源:PHPChina


  隨着所謂WEB2.0時代來臨,程式設計人員從來沒有時代象今天那樣受人注意,很多程式設計人員對於語言的爭論也從來沒有象今天這樣劇烈,JAVA、C++、PHP、ASP等等,最近又出來一個Ruby,加上Python。無數的FANS在中間進行爭論不休,也就是在網路上,如果是在現實生活中,大概會象《倚天屠龍記》裡描述的那樣,會決戰光明頂來定一個勝負,或者說定出天下第一大門派。而現在定出誰是天下第一大其實很方便,看一下哪個語言旗下的弟子人數即可。而現在最流行的統計方式,就是Google了,看看Google的搜尋結果,基本就能判斷出其在市麵上的網站的使用情況,


  約有5,760,000,000項符合 php 的查詢結果

  約有3,070,000,000項符合asp的查詢結果

  約有976,000,000項符合java的查詢結果

  約有327,000,000項符合perl的查詢結果

  約有238,000,000項符合python的查詢結果

  約有225,000,000項符合c++的查詢結果

  約有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:

    JSP需要13秒

    PHP需要69秒

    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在這一點沒有非常大的優勢,所以隻是成為人們選擇它的一個不是很重要的理由。

<<<返回技術中心

技術文章

站內新聞

我要啦免费统计