程序員為什麼會鄙視PHP?它是世界上最好的語言?

Because PHP is the best language ever,ever.It's fast,very powerful,and free.

這是PHP官方文檔裡的話,太拉仇恨了,


程序員為什麼會鄙視PHP?它是世界上最好的語言?

PHP是世界上最好的語言!

後來,一則著名的笑話誕生了:

某女:你能讓這個論壇的人都吵起來,我就跟你約會。

某程序員:PHP是最好的語言。於是論壇炸鍋了,各種吵架。

某女:服了你了,我們走吧。

某程序員:今天不行,我一定要說服他們,PHP必須是最好的語言。

自此,PHP成了眾多程序員們調侃的編程語言。


程序員為什麼會鄙視PHP?它是世界上最好的語言?

好的我們要大聲說出來,壞的也不否認,下面來看看php的優缺點:

優點:開源 免費性 快捷性 [程序開發快,運行快,技術本身學習快]

1)跨平臺,性能優越,跟Linux/Unix結合別跟Windows結合性能強45%,並且和很多免費的平臺結合非常省錢,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結合,或者數據應用夠大可以考慮換 PostgreSQL或者Oracle,支持N種數據庫。(N >= 10)

2)語法簡單,如果有學習C和Perl的很容易上手,並且跟ASP有部分類似。有成熟的開發工具,比如NuPHPed,或者Zend Studio等等,再Linux平臺下可以使用Eclipse等等。

3)目前主流技術都支持,比如WebService、Ajax、XML等等,足夠應用。

4)有比較完整的支持,比如使用ADODB或者PEAR::DB做數據庫抽象層,用Smarty或者smart template做模板層,如果是PHP 5.1的話,還能夠使用PDO(PHP Data Object)來訪問數據庫。

5)有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.net的事件驅動的框架:Prado,支持類似Ruby On Rails的快速開發的框架:Cake等等,足夠滿足你的應用需求。

6)PHP 5已經有成熟的面向對象體系,能夠適應基本的面向對象要求。適合開發大型項目。

7)有成熟的社區來支持PHP的開發。

8)目前已經很多大型應用都是使用PHP,比如淘寶網、Yahoo、163、Sina等等大型門戶,很多選用PHP來作為他們的開發語言,所以大型門戶都能夠選用它,我想足夠能夠你的使用了。

9)有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客 WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。

10)使用成本低 (linux apache mysql php內核)

缺點,

1)函數命名不規範 駝峰法和下滑線,傳參位置不一 你知道的

2)單線程 ; PHP本身,一直以來php就是個單進程的程序;雖然php的pthreads擴展早就有了。但是它不夠穩定,運行運行著就會莫名其妙的自己掛掉;php的擴展都是C寫的,這也就意味著任何一個擴展出現線程競爭資源控制問題都能讓整個掛掉

3)核心異步網絡不支持(當然在linux只有同步非阻塞網絡模型)。卻少了這個使得很難開發一個能夠承受大併發的網絡應用。傳統的網絡模型和io都阻塞的。這樣基本的編程的做法就是一個進程(或者線程)響應一個用戶鏈接請求。因此無法完成像實時網遊那樣需要成千上萬網絡連接的任務。儘管php也有Libevent、eio擴展對此算是某種程度上面的彌補,但是感覺都不是那麼完善

4)只支持web開發,不方便做 .exe文件,不方便做桌面應用程序. 不方便做手機程序.

5)不適合做爬蟲、自動運行腳本.科學運算項目,這語言基本構架就不適合,雖然有很多方法實現。

6)後期維護困難。後期提速空間侷限性較大。

引用鳥哥[Laruence]的話:

說PHP不支持多線程(90% of這些人不知道多線程模型和IO複用模型的不相伯仲), 爛. 說PHP不支持異步(90% of這些人, 根本不知道異步代表什麼), 爛. 說PHP是屌絲語言(99% of這些人是想找尋智商優越感), 爛. 每每我看到這種的論調, 我真的很無奈, 因為你根本沒辦法讓一個裝傻的人變聰明.


分享到:


相關文章: