為什麼在知乎 php 被黑的最慘烈?

來源:互聯網
上載者:User
關鍵字 php java 222 web xml
在編程話題經常看黑php的,而且也是排名黑最靠前的。php和java都學過,用的感受是web方面,php搭建起來很方便,很多方法直接用;java的xml配置反倒很囉嗦,算不算驚豔?222

回複內容:

作為有8年多的PHP編程經驗的老司機,客觀說一句,在Web開發領域,PHP是一門非常不錯的語言,事實不以人的意志為轉移。PHP有它不足的地方,但是它一直在持續完善和發展。

如果大家有留意過《TIOBE世界語言熱門排行榜》,PHP曾經排名更前,2010年的時候,曾經一度排名到第3名,而現在大概在第6名(2016年2月)。

語言排名的下降,個人認為不是因為使用的人變少了,而是領域更細分了,例如新增加的移動端開發,就改變了很多程式設計語言的佔比。

PHP很簡單,很容易學習,例如:
(1)屏蔽了記憶體管理、指標等比較複雜的語言特性。
(2)甚至屏蔽了變數類型的複雜性。
(3)PHP的環境搭建很簡單,郎朗上手。
... ...

什麼樣的東西,能讓人印象深刻的記住呢?
對於工作多年的老程式員,我們曾經在大學學習過的《組合語言》,還能記得多少?(假設不從事相關的工作哈)或者C/C++,如果不從事相關開發,又還記得多少?
但是,如果學習PHP過的人,通常還能記得不少,因為PHP的基本文法壓根就沒有多少東西哈!


簡單的東西,通常不容易被人忘記。

早期,很多人批評PHP的語言特性不完整,例如沒有命名空間(Namespace),更早PHP4說物件導向不完整等等。還有一些人,批評弱類型,認為變數類型的隱形轉換帶來了很多坑,實際上,很可能是他們沒有比較全面理解轉換的規則。但是,隨著PHP5.x系列的發展,對於語言特性層面的批評慢慢變少,因為它逐漸完善了這一塊。然後,對於效能的批評又進一步開始增加,不過,隨著PHP7的發布,效能獲得大幅度的提升。

一個足夠簡單,而又不斷自我完善的東西,通常不會被時代洪流所拋棄的。世界上只有兩種語言,一種是經常被人罵的,另一種是沒人用的。我tm寫了一千多字的草稿後才發現是php而不是phd。很多人噴,一是不瞭解,為了噴而噴。二來是酸葡萄心理。

PHP的開發人員社區風格非常穩健,從php4到php5,再到PHP7,乃至難產的php6版本,php這一路發展下來,語言本身在穩步的前進,同時對向下相容處理很好。所以整個社區可以一脈相承的發展。

PHP6最然最終沒有發布,但其核心的功能也都陸續遷移到了php5.x版本中。
最新剛剛發布的PHP7版本,那也是讓人驚豔。我自己實際部署的效果,整個系統只做了一行代碼的改動,就無縫遷移到了PHP7版本,系統負載直接降到了小數。這就是生產力。

我相信PHP7的普及會很快,因為確實會給廠商帶來巨大的實惠:效能提升,可以減少機器,減少人力,系統穩定性也更好,也可以帶來更多的收入。

PHP的手冊,評論系統也是非常的完善。很多人黑PHP也僅僅停留在早期的概念上。php是有曆史的包袱,存在不一致的地方。但每種語言都有自己的不足。

決定程式優雅的是人,而不是語言。

===================2016年1月26日晚補充=====================
沒想到很多人點贊,再補充下我自己使用PHP的經曆:

大學的時候曾經學過很多語言,不過最終還是學習PHP比較有成就感,應該是和應用程式層接觸比較緊密,作出的東西有人用,再加上那時候網站剛開始流行,用PHP做個網站,做個聊天室,搭個論壇,很有成就感。就這樣一直用起了PHP。

說道這兒,說一下PHP為什麼會被噴。因為PHP入門簡單,所以從業人員水平良莠不齊,再加上PHP語言本身又比較靈活,缺少語言層面的約束,所以就導致了各種五花八門的寫法。再加上各種PHP的開源軟體的流行。這些軟體是如此的流行,以至於問為什麼這樣寫,回答是:某某軟體是這樣寫的。所以這也確實是造成了PHP的代碼普遍比較亂的現象。但這都是十幾年前的事情了,新版本的PHP文法也越來越嚴謹,oop的功能也越來越完善,用PHP一樣可以寫出簡潔優雅的代碼出來。所以這時候再來噴PHP,其實就out了。

2004年的時候,和團隊成員一起接手了一個老的網站。確實體會到了 PHP代碼如果沒有好的組織帶來的混亂。當時index1.php index2.php index3.php,一堆的檔案。花了幾個月的時候,把原來的商務邏輯都梳理清楚,然後重新實現。04年的時候還主要是面向過程,那時候使用smarty做頁面和應用的分離。後來雖然離開了,但值得自豪的是我們團隊當時為這個網站打下了很好的基礎,這個網站後來也有很不錯的發展。

再後來加入了一家國內的一線互連網公司,一開始做開發。接手了一個老的系統,當年曾經為公司帶來幾千萬年度營收的系統,就是用普通的php, mysql主從備份做的架構。後來切換到了背景全文檢索索引引擎,前端還是用PHP。

這時候發生了一個重大的事故。客戶自助系統的資料無法同步到背景引擎。客戶系統那邊是java + oracle的架構,客戶的下架廣告無法正常同步到後台引擎。這個事故直接引發了一系列人員的清理,這是後話。我當時作為引擎的介面人,就用PHP寫指令碼統計兩邊狀態不同步的列表,讓客戶系統這邊發訊息同步。最終把兩邊的資料同步好。(其實是一件很簡單的事情)

後台我受不了半夜雞叫(搞營運的都知道),我轉行去做了自動化測試。寫了三年的自動化測試指令碼,整理了一系列的自動化測試架構,工具,方法。當然,這些也都是用PHP寫的。:)

後台了09年準備創業,10年正式辭職創業,到現在,我們團隊用PHP做了三款成熟的開源軟體。我們曾經比較過和我們功能類似的一款用其他語言寫的軟體的代碼量:那款軟體功能是我們的1/3,代碼量比較我們還多。他們系統中的bug和feature的比例很高。我不是想證明哪種語言如何,我只是想證明,PHP語言可以寫出精簡優雅的代碼,而且可以寫的很精鍊,表現力豐富。

在做這幾款軟體的過程中,我們也遇到了PHP的一系列的問題:
  • 如何解決全文檢索索引的問題(不依賴第三方搜尋引擎)
  • 如何解決計劃任務的問題(不依賴作業系統計劃任務)
  • 如何使用者二次開發無法升級的問題
  • 常見安全問題的防護(xss, sql注入,附件上傳,csrf等)
  • 如何用PHP做聊天伺服器。(做輕量級的解決方案)
  • 如何解決PHP環境部署問題。

我們都做了比較輕量級(盡量減少第三方依賴)的解決方案。


我們還用ssh + php做了自己伺服器的監控系統,用PHP寫了各種備份,營運,監控的指令碼。


以上的這些工作,PHP都很好的完成了。而且又有了PHP7版本,這個版本真的是讓人驚豔,期待鳥哥後面的更快的版本。


這一些其他的語言也都可以實現,也都可以做的很好。所以單純的爭論語言其實沒有什麼用。每種語言都有應用的情境和價值,脫離這些談論,其實沒有什麼意義。


建議大家把精力放到怎麼賺錢上面來,語言只是工具。決定程式優雅的是人,而不是語言。



===================2016年1月27日早補充=====================

評論有的朋友說,為什麼java總是排在第一位呢。我想回答的是:既然java總是排在第一位,為什麼還要老是去噴排在後面的PHP呢?這是什麼心理在起作用呢?


我在回答這個提問的時候,就知道肯定有其他語言社區的人跳出來,肯定拿優雅說事。我想回答的是,你號稱自己優雅,那就優雅唄。為什麼還總是靠嘲笑其他語言來抬高自己呢?這是什麼心理起作用呢?


真正的實力是不需要靠貶低其他人來證明的。

真正的實力就是用來讓其他人來羨慕,嫉妒,恨的。(哈哈,拉仇恨了。)

有些吃飽了沒事乾的網民,對我們PHP的事情指手畫腳。PHP一不輸出鍵盤戰士(不然也不會在輿論上被壓著打),二不輸出饑餓和貧困,三不去折騰你們,還有什麼好說的。內建輪子太多,被認為是走捷徑!phper顧著低頭碼代碼,忙著賺錢沒空反擊別人黑他們,反正他們一打一個$,這得多有錢啊




圖的來源忘了,來自zhihuer。php在哪裡被黑的不慘烈?看成phd了,逃~
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.