有一天我跟在DUMBO的一個非常棒的創業公司的老板聊天談到為什麼非PHP界的開發人員普遍輕視PHP和PHP相關社區他提出了一個觀點讓我印象很深很大程度上是因為以前從來沒有聽到過這樣的說法
如果你不知道大多數的程序員都會對PHP發什麼樣的牢騷那麼這些牢騷差不多會像這樣
語法丑陋
缺乏其它語言都有的一些必要的特征(在版本之前沒有命名空間閉包)
不一致的函數命名使用慣例以及其它一些怪異的東西
過程和面向對象的雜混
基本上%的PHP項目都爛如一堆狗屎
但他所說的PHP的問題卻是另外一個問題他並沒有說這種語言有問題——他認為這種語言被一種常見的文化現象包圍著是一種通常由語言的創造者造就的文化傳統現在看來這對一些糟糕的編程實踐方法起到了鼓勵作用也就是它使PHP代碼變的劣質和不可維護
這種一個語言或框架上體現出創始人的哲學思想並被相關社區推崇的現象是的確存在的他拿出來Ruby和其創始人Matz作為例子Matz想要的是一種易讀易寫能提高程序員工作效率的語言沒看見Ruby開發人員們言之必稱快速開發以及這種語言的優雅?
接著就是DHH 和他的Rails框架還有Guido和他的Python語言於是我在想Rasmus對於PHP呢?
Rasmus Lerdorf給人的印象非常的有趣他創建了最初版的PHP語言而且一直在改進這種語言他在PHP社區裡被當作神一樣崇拜他在PHP的任何方面都 享有最大的權威他被眾多的會議邀請去做演講同時被大網絡公司(yahoocom)所雇用他獲得了所有人的尊敬——盡管有這樣一種事實他成了大多 數的非PHP程序員所鄙視的PHP上的眾多問題的形象代表
Rasmus倡導避免使用框架而把PHP更多的當作一種模板語言對他來說這種做法能產生直接的運行效率和可擴展性(程序負載可知)而對於其 他的所有人來說這種做法導致了大量的亂炖似的過程式代碼大量的無法維護的項目自從年PHP誕生至今大概年左右的時間裡所有的PHP項 目都是按照這種指導寫成的
與此同時另外一個問題突然的出現了在PHP之前PHP的初期PHP獲得了大量的新手的追隨這種語言的入門門檻出奇的低任何人都可以 下載自解壓的×AMP Windows程序安裝包在兩分鐘內用上這種語言除此之外那時在Web開發方式上對MVC模式的共識並沒有真正的出現這樣一來你可以想象一群 新手和一個缺乏好的開發實踐方法的語言組合到一起能創造出什麼?一堆無法維護的垃圾而且整個大環境都是這樣
不要誤解我的話——優秀的PHP開發者還是不少的即使是當時但是就像我說的粗制濫造的菜鳥作品到處都是當牛仔式無羁的PHP程序員在沒有 指導原則的情況下聚集到一起開發程序於是像PHPbb PHPNuke以及很多的粗糙的php程序包就出現了但是你能單純的責怪PHP開發人員嗎?不能!其它的Web語言巨人ASP和Perl同樣惡 名遠揚同樣宣傳著一種亂炖式的開發方式
所以這就是為什麼PHP會得到這樣的罵名是因為它的歷史流傳大多數已經轉向PythonRuby和Java的PHP開發人員並沒有在MVC概 念興起時回頭去重新思考這種語言此外更有一些像”Ruby公子“Zed Shaw抱怨一些程序員的思想”受PHP毒害“這樣的露骨的諷刺像這樣的言論在RubyInside上很盛行
PHP是個集中營
但像Zend和CodeIgniter這樣的框架的出現把這種語言推向了正確的開發方向上事實上它把PHP推向了與Rasmus所希望看到的相反的方向上了查看一下Zend和CodeIgniter框架你會發現它們是為數不多的文檔寫的很好代碼寫的很好的程序
大多數學習了Ruby的開發人員同時都要學習Rails和MVC知識PHP在此之前已經被使用了整整年對於那些新手來說可惡的Ruby沒 有給他們這段時間讓他們自由發揮Rails有現成的標准指導它的入門門檻相對高很多通常會把一些缺少經驗的開發人員擋在門外
事實上PHP應用程序是可以向其它種語言那樣寫的很好而且還會具有一定的運行速度上的優勢PHP世界裡的MVC風格的開發方法興起只是在近幾年才出現的現象不得不承認我們應該感謝Rails帶來的這種變化
那麼PHP如今是個什麼樣呢?
各種標准(非統一但大多數項目使用MVC很少有垃圾般的過程式程序)
很低的入門門檻
速度和可擴展性(在各種腳本語言裡PHP應該是最好的)
有一個好的單元測試框架
有最好的各國語言翻譯的文檔
除此之外互聯網上大多數有影響的網站都使用PHP作為它們後台的語言或工具諸如FacebookDigg維基百科WordpressDrupal等等我相信對PHP有一個深入的掌握會使一個程序員打開更多的未知領域的大門
如果你不贊同上面所說的請留下評論或email給我——我想聽聽你為什麼不這麼認為
事實上我並不是一個PHP迷我對語言沒有感覺我使用PHP大多是因為——你猜到了——有人願意付錢給我所以一切歸咎於此
如果你希望在軟件設計上做出明智的決定PHP是你開發Web應用程序的最佳選擇
順便說一下如果你確信要使用PHP來開發下一個Web應用請試一試CodeIgniter它是一個輕量級的普通的超級快的PHP框架對於CodeIgniter我是個粉絲
From:http://tw.wingwit.com/Article/program/PHP/201311/21122.html