如何客觀公正地評價PHP語言?

來源:互聯網
上載者:User
客觀、公正、無偏見地評價一下PHP,它的優點、缺點,與其他語言的比較,以及其他一切。
不要簡單地說“PHP是最好的語言”“PHP是最差的語言”之類的。

回複內容:

作為一個有C語言基礎的,一直養成了對資料類型很敏感的習慣,直到用了php. 我滴個神啊,定義變數怎麼和鬧著玩似的。你已經先入為主地堅決否認 “PHP是最好的語言”,還說什麼客觀公正?
事實上PHP就是最好的WEB開發語言(沒有之一),除非你認為80%的網站開發人員是傻X。


雖然有不少人堅持不懈地噴PHP,但PHP用飛速上漲市場佔有率還以響亮的耳光。

PHP的優缺點,網上討論也很多了。
作為WEB開發語言,最主要的優點是:
1. 開發速度快,秒殺其他所有web開發語言
2. 部署、維護極其簡單,再次秒殺其他所有
3. 效能好,好於Python、Ruby。不如JAVA,但差距可以接受。

有這幾點,其他已經不重要了。

PHP被噴得最多的是語言特性,但語言是用來實現功能的,不是停留在學術研究層面的,實戰效果好是王道。
你設計個特性完美的語言,但是極其難學難用,也不會有什麼卵用。做過幾年的php開發,後來短期做過c#,java開發,也接觸了一些其他的語言,包括ruby和python,目前專註於web前端開發。因此我覺得自己還是可以比較公正客觀地評價php。

優點
在web領域,php確實是一門開箱即可使用的語言,不管是在linux下還是windows下,搭建 web開發環境都非常便利,特別是對於 新手來說。按照樣本就可以很快寫出一個demo,是非常方便簡單的,不需要OO,不需要額外的模板引擎。如果需要額外的庫,把檔案直接加到目錄裡面,使用include或者require進來即可。這對於新來,或者開發微型項目,都無疑是最方便的。四個字:開箱即用。

而開發大型項目,那麼OO,模板引擎,包管理器,各類架構也是應有盡有。可以說,php也是能夠滿足企業級的開發需求。

很多人以前詬病的php的缺點包括
  1. 沒有好的包管理器(pear,只是用的不多)
  2. 缺乏命名空間
  3. 開發不規範
目前來說上述的一些缺點都已經得到瞭解決
  1. Composer 目前應用比較廣泛的php包管理器
  2. 5.3以後增加了對命名空間的支援
  3. PHP之道 對php的開發做了一定的規範限制

缺點
效能問題,這方面確實是比不上java,但目前php NG在效能上已經得到了大幅度的提升。

函數命名和參數順序沒有統一的規範,比較紊亂。寫了幾年的php代碼,發表一下個人看法。

相對於其他語言,Php的顯著優點是簡單粗暴,上手快,農民工便宜。

但是這些優點都是以犧牲健壯性,可維護性,可拓展性為代價的。

php弱類型,即時編譯,導致很多錯誤在啟動並執行時候才能發現,所以對健壯性要求很高的系統都不會用php這樣的語言來構建,你見過哪個銀行的系統是用php寫的?

Php在代碼規範上面沒下功夫,導致php代碼各種寫法混存,最終苦逼的是維護別人代碼的接盤俠。。。

再說說php的架構,php採用的是指令碼+擴充的架構,你會發現php應用的很多核心代碼都是放到擴充上面實現的,而擴充都是用c寫的,這樣移植又複雜了好多了。從這一點來說,php就是一個組裝師。從語言設計的目標看,主要面向web,這一點可以說既是php廣泛使用的原因,也是被人吐槽的原因。我從以下三個方面對比一下php和java這對冤家:
1.網路編程
php能很好地和server整合,因此從socket編程中解脫出來了,不像java/python其他常見web程式設計語言通常需要自己實現server,而且php自身通過sapi封裝了http所需的全域變數,這大大簡化了手工解析http協議,但是另一方面也導致php對socket、多工等網路編程的支援明顯弱於java。
2.並發編程
php沒有提供良好的並發編程手段,這一點在為server服務的時候不是太大問題,但是如果編寫獨立的用戶端或服務端程式就比較蛋疼了。這一點,相對java來說就極大限制了php成為一門更優秀的語言。
3.文法特性
從文法特性上來說,php和java很像,但是也各有特點,也都在進步。比如,java對範形編程的支援,php對匿名函數,閉包等的支援(java8有了),php在hack的影響下也引入了標量類型等新特性

綜上:php在網路編程與並發編程方面還不算友好,在php7以後應該會有改進,對於web編程php是有獨到優勢的,但是要成為一門更通用的語言,還有較長的路。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.