PHP正在“殺死”Python

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"最近,我突然發現自己好像又在逆潮流而動。可能我的想法與很多朋友不同,我認爲PHP這個編程語言界的“混蛋”比以往任何時候都更受歡迎。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"或許你會質疑——PHP不是已經完蛋了嗎?市面上已經出現了很多“更好”的編程語言,不是嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"答案顯然是否定的,否則PHP早就消失在人們的視野當中、還被踩上一萬隻腳。要找到背後的根源,我們恐怕先要弄清楚所謂“更好”的語言究竟是什麼意思。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"如果大家還不理解PHP爲什麼仍然活蹦亂跳,那我們可能得從編程、程序員、市場以及技術大衆化等問題說起。是的,真正的原因在這裏,而非代碼、函數或者語法。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"曾幾何時,罵PHP代表一種潮流"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"要想在如今的編碼工程領域選定隊伍、站穩陣營,大家首先得把除領導指定語言之外的一切競爭性編程語言先痛罵一遍。這跟功能特性無關,而是業務文化的直接體現。換言之,這樣的情景常讓人想起入教儀式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"程序員們是一羣固執己見的傢伙,包括我在內,我們都很囂張、喜歡抨擊一切自己不用或者不喜歡的語言。大家肯定都聽到過工程師說“Java太爛了,C#就是坨垃圾、啥也不是。”這裏具體在說什麼語言並不重要,只要能博大家一笑就行。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但肆意痛斥的背後還隱藏着一種更深層次的不屑,這一點在最近的PHP與Python之爭中體現得尤其明顯。在很多學術人士看來,這就像是一場血腥的改朝換代、似乎有人想幹掉PHP並用Python徹底取而代之。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"不信大家可以上維基百科查一查,其中LAMP堆棧詞條中的“P”代表的是Python。有意思吧,20年前我剛接觸LAMP的時候,這個“P”可絕對指代的是PHP——沒錯,既不是Python也不是Perl。我不是說情況不能演進轉變,但Python怎麼就在不知不覺中替代了PHP的文化地位?這確實是個值得深思的問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對於大多數程序員來說,我們會在學校裏學習Python以及其他一些在現實場景中可能永遠用不上的小衆語言。大家多少會聽到教授或者其他從業者說出“PHP很爛”之類的話,但如果深究下去,我們會發現他們可能從來沒認真寫過哪怕一行PHP代碼。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"事實上,光是想想有人在全職寫PHP代碼都會讓我們心底一寒,如同親眼見到惡魔撒旦真的有忠實信徒一般。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"這種對PHP的蔑視其實相當合乎邏輯,甚至在程序員羣體當中形成了一種內生性的共識。跟朋友們坐在星巴克享受下午時光,順便吐槽一下特朗普、流行搖滾還有PHP,豈不美哉!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"此外還有編程純粹主義者,他們願意浪費大量寶貴時間來論證PHP爲什麼真就那麼爛。大多數爭論都圍繞着他們不喜歡的某些設計傾向或者細微差別展開,而且踩一捧一是這類交流中的常見伎倆了。語言嘛,必須得評出誰高誰低,畢竟紫金葫蘆都要分個公母呢。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"可抱怨的也確實不少:PHP是一門類型鬆散的語言,所以經常孕育出糟糕的代碼。(但JavaScript和Node.js也一樣,怎麼沒見大家有那麼大怨氣?)PHP的函數太多了。(沒錯,這樣太方便了,顯不出程序員的水平。)函數名稱不一致。(是的,當一種語言真正實現了大衆化、而非被全部掌握在單獨一個計算機科學博士的手裏時,就會出現這樣的問題。)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"咱們迴歸正題,可以看到針對PHP的批評意見主要源自個人偏好或者對細節的挑三揀四。如果我們願意,也完全可以在Python、C#、Java、Go或者JavaScript等其他語言裏挑出類似的毛病。作爲程序員,我們就是愛抱怨,抱怨讓我們快樂。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但程序員們喜歡抨擊PHP的真正原因,在於我們固有的傲慢態度與不斷膨脹的嫉妒心混合到了一起。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#292929","name":"user"}}],"text":"PHP確實更容易使用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"PHP誕生於上世紀九十年代中期,歲數甚至比很多少壯派程序員還大。我是從2000年初開始接觸PHP的,當時它剛剛從版本4過渡到版本5。後來,我開始在自己編寫的CodeIgniter ZendFramework框架中編寫應用程序。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在我看來,PHP之所以能夠保持長青、多年過去仍無衰老跡象,主要原因就是它被嵌入到了全球各地的新舊應用程序當中、也被嵌入不分老少的開發者頭腦當中。有些人用過幾年,也有些人用了幾十年,PHP都在他們心中留下了深刻印象。開發者不會消失、編寫出的商業代碼也沒有消失,所以PHP依舊健在。而且有趣的是,Python其實誕生於1991年,比PHP還要早。而且雖然生命週期更長,但Python一直沒能達到PHP目前的高度。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"爲什麼會這樣?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"從個人觀點出發,我覺得跟PHP相比,Python使用起來要更麻煩。這個問題在Python 3中有所改善,但退回15年前,Python還沒有PHP中開箱即用的那些“花哨功能”(函數)。很多功能必須手動安裝,否則就沒得用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而且長期貫穿Python語言的另一個老大難問題,就是其中的間隔語法。我真的非常討厭這種由代碼間的空格數決定分隔關係的語法。我喜歡按自己喜歡的方式分隔代碼,而且完全受不了編程語言本身在這裏動腦筋。大家可以隨意批評我的這種習慣,但這是我自己的代碼、是我親手寫的,想要按自己的風格來有錯嗎?如果連這點權利都不給,我詛咒自以爲是的槓精們天天查bug。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Python一直吹噓這種間隔語法“易於閱讀”,這明顯是營銷屁話。我話擱在這裏——Python用的這套語法,堪稱編程語言界最自以爲是、最糟糕的語法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"正是這種令人難以理解的自以爲是,讓程序員們飽受折磨;在編程早期、還沒有IDE能幫我們糾正語法錯誤的年代,根本就不會有多少程序員願意正眼瞧瞧Python。反正我自己是不想。更確切地說,這也是Python語言在誕生的前十年一直拿不下可觀市場份額的一大原因。沒錯,這種設計壓根沒有用戶友好性可言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"另外,Python語言的存在感也不強。它是作爲腳本語言被嵌入到Linux發行版中的,這也是它最主要的用途所在。沒有人會歡呼“耶,Python來了,我們可以用它構建網站了!”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"當然,Python也可以用來做網站,但優秀的工程師都能感受到它的特性並不適合Web開發場景。除了個人在語法層面的偏好之外,我承認Python是一種功能極爲強大的語言,特別適合處理數據科學或者其他着重高精度數學運算的任務。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"人人都能上手PHP"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"過去15年以來,Python確實迎來了脫胎換骨般的更新,所以在不少層面上已經超越了PHP。但Python仍有兩個沉重的包袱沒能丟掉:第一,大部分更新的出現都晚了十年。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Python 3發佈於2008年,它的出現破壞了向下兼容性。除非額外修改,否則Python 2代碼無法與Python 3一同運行。但企業環境下動不動就有幾十、上百萬條老版本代碼,誰願意去費這個勁?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"公平地講,PHP 7和8也破壞了部分PHP 5(並沒有PHP 6這個版本)代碼。我曾是ZendFramework社區的一員,社區一直幫助更新框架以支持舊代碼的PHP 7和8上運行。好消息是,在將ZendFramework升級至PHP 7和8時,我們的遺留代碼幾乎沒受到任何影響。因此,大部分PHP 5.6的代碼都得到了良好的向下兼容效果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而真正讓PHP成爲業界長青樹的分水嶺事件,也許是一家名爲Automattic的小型初創企業在2005年的悄然建立。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"如果WordPress是用Python編寫的,我敢保證PHP絕對沒有今天這麼得意。但我也敢說,Python會阻礙、甚至扼殺掉WordPress獲得如今這樣廣泛成功的可能性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"一種語言或者應用程序要想在開源市場上持續生存,貢獻者的使用與擴展可謂至關重要。而誰更易於上手,誰就能在行業內吸引到更多貢獻者的支持。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"作爲受到科班培訓的軟件工程師,一切針對PHP的辱罵我都可以嘗試去理解,但我想提醒大家一點——使用PHP的並不只是有着正規文憑的工程師,還有兼職人員、家庭主婦、平面設計師、公司經理、企業家甚至是小學生。沒錯,成千上萬的小學生正在自己第一臺計算機用PHP編寫網頁。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"也可以說,PHP就是信息時代下的BASIC語言。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而作爲軟件工程師,很多批評者已經習慣了工程師的思維方式,卻忘記這世上還有無數只想爲小公司建個網站、時間跟資源都很有限的PHP用戶。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"WordPress和PHP向他們敞開了熱情的懷抱。是的,WordPress本身確實易於使用,但還不夠全面。而補充這個短板的正是WordPress插件架構(「架構」這個詞在這可能不太準確,但大家能理解就行),允許普通人用PHP編寫一小段代碼來實現相應變更。用不着重寫整個類、也不用考什麼軟件工程師認證,只需要一小段代碼。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"這數以百萬計的業餘程序員們就這樣邁出了自己的編程之路,並在網絡上與他人分享自己的心得、最終建立起碩大無朋的PHP技術社區。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"易於理解的PHP讓普通人也能有效編寫代碼,它簡單、沒脾氣、類型鬆散、不涉及編譯,可以說是任勞任怨。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"PHP支撐着整個萬維網"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"快進到15年後,如今PHP支撐着78%的Web系統。單是WordPress就在全部網站中佔比近40%,並擁有近三分之二的CMS份額!更重要的是,“聲名卓著”的Python在這塊蛋糕上僅佔10%!雖然作爲競爭對手的Python死忠們對PHP充滿仇恨,但Python支持的Web佔比還不足1.5%。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"氣不氣?其實沒什麼可氣的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對,理當如此。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"有企業客戶的招聘人員聯繫過我,表示打算刪掉所有Python Web代碼並替換成PHP。這事聽着挺神奇,但其實經常發生。爲什麼?因爲有一說一,Python並不怎麼適合Web應用。熟悉Python的開發者往往是數據科學及其他領域的專家,而且有經驗的人才在市場上可謂供不應求。讓他們搞Web開發,就挺沒必要的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"企業則希望在Web上靈活一點。當他們需要擴張或者削減團隊規模,也不想花幾周甚至幾個月慢慢找尋熟悉Python的人才。這類工程師很貴的,企業不大負擔得起。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"但適應不同業務規模的PHP程序員在勞動力市場上則是保質保量,甚至可以根據需要快速培訓。更重要的是,就算想找一位經驗豐富、擁有數十年經驗的高級PHP架構師,難度也遠低於在Python領域找個同等水平的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而且公司管理層也會教Python鐵粉們做人。你想在沒有硬性理由的前提下用Python寫Web或者中間件?人家根本沒那麼多預算,而且要求隨時方便撤換成其他工具,這些都是Python不擅長的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"要成爲一名合格的應用程序架構師,首先就是學會用最有效的技術爲業務或者企業提供“規模適度”的支持:我們的個人偏好不重要、技術時不時髦不重要,最重要的是多、快、好、省。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"所以我發現適合完全用Python編寫的SaaS應用程序其實很少。考慮到Python在Web領域可憐的市場份額,似乎大多數應用程序架構師都跟我有着相同的判斷。他們只在最適合的地方使用Python,並在更多其他適合的地方使用PHP。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"總結"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"作爲工程師,我們都喜歡用自己熟悉的東西,也習慣了對自己不瞭解的東西大加貶低。別不敢承認,咱們程序員就這毛病。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"高校一直努力把Python定位成一種通用型商業語言——但它並不是。Python更適合作爲一種高端語言,專門用於運行服務器、數據科學、處理大規模複雜數據,甚至是處理加密貨幣採礦。這些纔是它的專長。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"而PHP則屬於大衆語言,也已經成爲萬維網上的客觀標準。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"所以如果願意,各位也可以繼續對PHP惡語相向,沒關係。但歸根結底,它仍是目前Web上使用範圍最廣的語言;而且隨着WordPress的持續增長以及PHP 7和8的持續升級,這種領導地位短期內也絕不會被動搖。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"作者簡介:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Beau Beauchamp是一名企業級UI\/UX全棧web應用架構師和高級開發者,擁有20多年開發可擴展應用的經驗。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"原文鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/beau-beauchamp.medium.com\/php-is-killing-python-2be459364284","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/beau-beauchamp.medium.com\/php-is-killing-python-2be459364284"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章