整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          JavaScript 時(shí)代,我們又回到了 PHP 嗎?

          近,我讀到了一位國(guó)外程序員的文章,他提出了一個(gè)有趣的問(wèn)題:在 JavaScript 時(shí)代,我們是否又回到了 PHP 的老路上?作為一名前端開(kāi)發(fā)者,我對(duì)這個(gè)話題深有感觸,今天就想和大家分享一下我的思考。

          從 PHP 到 JavaScript 的輝煌歲月

          說(shuō)起 PHP,相信很多老開(kāi)發(fā)者都有深刻的記憶。PHP 曾經(jīng)是 Web 開(kāi)發(fā)的王者,幾乎所有動(dòng)態(tài)網(wǎng)站的后端都是用 PHP 構(gòu)建的。那時(shí)候,PHP 就像是一把萬(wàn)能鑰匙,解決了我們很多實(shí)際問(wèn)題。即使到了今天,PHP 仍然在很多大型項(xiàng)目中扮演重要角色,比如 Facebook 最初是用 PHP 構(gòu)建的,后來(lái)演變成 PHP 的變種 Hack。這說(shuō)明 PHP 的影響力依然深遠(yuǎn)。

          但是,隨著時(shí)間的推移,JavaScript 崛起了。特別是 Node.js 的出現(xiàn),讓 JavaScript 不再僅僅局限于瀏覽器端,而是成為了全棧開(kāi)發(fā)的利器。像 Uber 這樣的公司就用 Node.js 來(lái)處理服務(wù)器和客戶端的操作,展示了 JavaScript 的強(qiáng)大。

          Next.js:連接過(guò)去與未來(lái)的橋梁

          最近幾年,Next.js 成為了前端開(kāi)發(fā)的新寵。它不僅繼承了 React 的靈活性,還結(jié)合了服務(wù)器端渲染的優(yōu)勢(shì),簡(jiǎn)化了開(kāi)發(fā)流程??梢哉f(shuō),Next.js 就像是 PHP 和 JavaScript 之間的一座橋梁。舉個(gè)例子,Hulu 就使用 Next.js 來(lái)簡(jiǎn)化服務(wù)器端渲染和客戶端交互,提供了現(xiàn)代化的用戶體驗(yàn)。這種體驗(yàn)讓我們不禁想起了 PHP 和 HTML 的經(jīng)典組合,但卻擁有現(xiàn)代技術(shù)的強(qiáng)大功能。

          真的在倒退嗎?

          有人說(shuō),JavaScript 的這些發(fā)展讓人感覺(jué)像是回到了 PHP 的時(shí)代,但我不這么認(rèn)為。JavaScript 早已不是那個(gè)只能做簡(jiǎn)單交互的小工具,而是成為了 Web 開(kāi)發(fā)的全能選手。現(xiàn)在,像 Next.js 這樣的工具不僅提供了 PHP 曾經(jīng)的簡(jiǎn)便性,還帶來(lái)了更多功能,如緩存和服務(wù)器端渲染,大大簡(jiǎn)化了開(kāi)發(fā)流程。Netflix 就通過(guò)使用 Node.js 實(shí)現(xiàn)服務(wù)器端渲染,確保了快速響應(yīng)的用戶界面,這在過(guò)去是需要多種技術(shù)才能實(shí)現(xiàn)的。

          未來(lái)的發(fā)展方向

          隨著技術(shù)的不斷進(jìn)步,Web 開(kāi)發(fā)的未來(lái)趨勢(shì)是功能的整合和開(kāi)發(fā)過(guò)程的簡(jiǎn)化。我們不再需要在多種語(yǔ)言和系統(tǒng)之間切換,現(xiàn)代框架提供了一站式解決方案。比如 Shopify 的 Hydrogen 框架,通過(guò)無(wú)縫集成后端和前端,極大地簡(jiǎn)化了開(kāi)發(fā)流程,提高了效率。

          總結(jié):進(jìn)化還是革命?

          總的來(lái)說(shuō),Web 開(kāi)發(fā)的演變并不是簡(jiǎn)單地回到過(guò)去,而是通過(guò)利用 JavaScript 的強(qiáng)大功能,突破了舊的限制,為未來(lái)更統(tǒng)一和高效的 Web 應(yīng)用奠定了基礎(chǔ)。這是一種上升的螺旋,而非原地打轉(zhuǎn)。

          你的看法?

          你在開(kāi)發(fā)過(guò)程中是否也感受到了這種變化?你對(duì)現(xiàn)代 JavaScript 中 PHP 風(fēng)格模式的回歸有什么看法?歡迎在評(píng)論區(qū)分享你的經(jīng)驗(yàn)和見(jiàn)解,我們一起討論 Web 開(kāi)發(fā)的未來(lái)!

          是否在 Node.js 與 PHP 之間陷入困境?每個(gè)都有其優(yōu)點(diǎn)和缺點(diǎn)。以下是有關(guān)如何選擇適合您的幫助的幫助。



          Web 開(kāi)發(fā)是一個(gè)廣泛的領(lǐng)域,其中包含您需要全面了解的許多功能。Node.js 與 PHP 是一些最發(fā)達(dá)的技術(shù),主要用于 Web 開(kāi)發(fā)活動(dòng)。這兩種技術(shù)參與了服務(wù)器端的開(kāi)發(fā)。然而,Node.js傾向于服務(wù)于客戶端和服務(wù)器端的開(kāi)發(fā)。

          根據(jù)研究,目前 34.88% 的可用網(wǎng)站托管在 PHP 上。此外,PHP已經(jīng)存在了 3 多年,使其服務(wù)于整個(gè)網(wǎng)絡(luò)的大約 78%。比較而言,Node.js 與 PHP 相比,在業(yè)界相對(duì)較新,盡管它正在顯著增長(zhǎng)。

          這正是大問(wèn)題所在!對(duì)于您的 Web 開(kāi)發(fā)項(xiàng)目,Node.js 和 PHP 之間的最佳選擇是什么?事實(shí)是,這兩者都是極好的選擇,盡管需要更多地了解它們。如果您意識(shí)到在兩者之間進(jìn)行選擇時(shí)遇到了困難,那么本文將為您提供支持!

          什么是 Node.js?

          出現(xiàn)了很多令人困惑的信息,傳播 Node.js 是 JavaScript 編程語(yǔ)言的主要框架。然而,事實(shí)是 Node.js 不是一種編程語(yǔ)言,或者更確切地說(shuō)是一個(gè) JavaScript 框架。該技術(shù)作為一個(gè)平臺(tái)運(yùn)行,您可以在其中定制 JavaScript 編程語(yǔ)言以作為服務(wù)器端腳本運(yùn)行。

          此外,Node.js 作為一個(gè)開(kāi)源的單線程平臺(tái)運(yùn)行,您可以在其中為您的技術(shù)操作創(chuàng)建一個(gè)快速且易于擴(kuò)展的服務(wù)器端和網(wǎng)絡(luò)應(yīng)用程序。如果您需要根據(jù)您的首選需求促進(jìn)實(shí)時(shí)操作和應(yīng)用程序的開(kāi)發(fā),這是理想的選擇。

          該工具還可以使用 C 和 C++ 編程語(yǔ)言以及 JavaScript 編寫。這主要是因?yàn)榈图?jí) C 是一種高效且可靠的編程語(yǔ)言,可在構(gòu)建操作系統(tǒng)、數(shù)據(jù)庫(kù)引擎以及與系統(tǒng)編程密切相關(guān)的任何其他活動(dòng)時(shí)應(yīng)用。

          另一方面,C++ 編程語(yǔ)言具有促進(jìn) Node.js 和創(chuàng)建內(nèi)部連接的相應(yīng)操作系統(tǒng)之間的通信的各種特征。該工具可以與 C++ 自由交互,使其能夠承受計(jì)算機(jī)特性,為服務(wù)器端和客戶端創(chuàng)建更好的平臺(tái)。

          為什么你應(yīng)該使用 Node.js

          Web 開(kāi)發(fā)研究人員透露,36.19% 的人使用 Node.js 進(jìn)行 Web 開(kāi)發(fā)活動(dòng)。隨著時(shí)間的推移,這個(gè)數(shù)字預(yù)計(jì)將增長(zhǎng)到一個(gè)巨大的數(shù)字,因?yàn)樵S多人正在更多地了解該工具以及它如何幫助他們減輕他們的網(wǎng)絡(luò)需求?,F(xiàn)在很明顯,Node.js 提供了很多功能。以下是使該工具脫穎而出的一些功能和最佳選擇。

          非阻塞代碼

          非阻塞代碼是使 Node.js 成為令人難以置信的選擇的主要功能之一。此外,Node.js 主要由事件驅(qū)動(dòng),因?yàn)榇蠖鄶?shù)代碼主要依賴于回調(diào)。當(dāng)其他程序和請(qǐng)求仍在處理中時(shí),它有可能暫停甚至休眠。

          此外,該工具提供主要用于生成高性能應(yīng)用程序的 nob-blocking 調(diào)用。該程序有1/0的杠桿時(shí)間來(lái)滿足其他請(qǐng)求的操作。

          全棧JS

          Node.js 可以讓您在客戶端服務(wù)器和端服務(wù)器上進(jìn)行編碼活動(dòng)。這是一個(gè)強(qiáng)大的前端和后端開(kāi)發(fā)組合。請(qǐng)注意,這是在 Web 開(kāi)發(fā)中使用 Node.js 的最關(guān)鍵優(yōu)勢(shì)。此外,即使您可以節(jié)省盡可能多的時(shí)間和資源,它也可以克服雇用兩個(gè)人的限制。

          物聯(lián)網(wǎng)協(xié)議

          這項(xiàng)技術(shù)不需要您在服務(wù)器端擁有大量?jī)?nèi)存和資源。此外,Web 開(kāi)發(fā)專業(yè)人員可以選擇使用物聯(lián)網(wǎng)在不同設(shè)備中生成并發(fā)鏈接。該工具還可以支持使用 IoT 的消息隊(duì)列遙測(cè)傳輸,也稱為 MQTT。

          此功能使 Node.js 易于與您首選的第三方設(shè)備集成。易于集成使該工具成為后端級(jí)別的最佳選擇。

          簡(jiǎn)單

          在分析用于 Web 開(kāi)發(fā)活動(dòng)的最佳技術(shù)時(shí),簡(jiǎn)單性是需要考慮的一個(gè)關(guān)鍵特性。Node.js 是一個(gè)很棒的工具,由于其簡(jiǎn)單的性質(zhì),您可以開(kāi)始使用它。如果您是一名新程序員并且想要入門,Node.js 是最簡(jiǎn)單的選擇,因?yàn)槟梢栽趲滋靸?nèi)學(xué)習(xí)并掌握它。

          Node.js 的優(yōu)點(diǎn)

          • 跨平臺(tái)功能

          Web 開(kāi)發(fā)人員可以輕松地結(jié)合 Node.js 和 electron 的強(qiáng)大功能來(lái)生成實(shí)時(shí)跨平臺(tái)應(yīng)用程序,而無(wú)需您為每個(gè)平臺(tái)使用不同的代碼。這是觸發(fā) Node.js 為 Google Sheets 和Excel 圖表創(chuàng)建 ChartExpo 的原因之一,該圖表目前應(yīng)用于一系列數(shù)據(jù)處理活動(dòng)。

          • 縮短上市時(shí)間

          該工具被認(rèn)為是全棧的,在進(jìn)行活動(dòng)時(shí)易于使用。如果您的團(tuán)隊(duì)成員可以使用此工具,他們可能會(huì)節(jié)省大量時(shí)間,可以花在其他更有利可圖的重要活動(dòng)上。作為回報(bào),您將自動(dòng)縮短營(yíng)銷時(shí)間。

          • 可擴(kuò)展性

          Node.js 有一個(gè)高效的模塊平衡機(jī)制,允許它在多個(gè) CPU 內(nèi)核上運(yùn)行。這使您更容易在更短的時(shí)間內(nèi)實(shí)現(xiàn)目標(biāo)。它具有 非阻塞事件循環(huán)功能,使其在工作時(shí)高效。

          Node.js 的缺點(diǎn)

          • 它有一個(gè)不穩(wěn)定的 API

          應(yīng)用程序接口(也稱為 API)會(huì)不時(shí)更改,從而使該工具在某些時(shí)候變得不可靠。鑒于定期發(fā)布新代碼,開(kāi)發(fā)人員必須定期更改其訪問(wèn)代碼以適應(yīng)當(dāng)前情況。

          • 無(wú)法處理繁重的計(jì)算

          Node.js 的主要缺點(diǎn)是它不能處理多線程編程任務(wù)。盡管與 Ruby 相比,它可以支持更復(fù)雜的應(yīng)用程序,但它無(wú)法承受長(zhǎng)時(shí)間的計(jì)算。

          • 回調(diào)地獄

          Node.js 依賴于回調(diào),因?yàn)樗哂型讲僮髂P汀_@使得處理任務(wù)變得困難,因?yàn)榉峙涞娜蝿?wù)出現(xiàn)在隊(duì)列中。

          什么是 PHP?

          術(shù)語(yǔ) PHP 是一個(gè)首字母縮寫詞,代表超文本處理器。過(guò)去,它被定義為個(gè)人主頁(yè),隨著技術(shù)的進(jìn)步而發(fā)生變化。它是一種面向?qū)ο蟮拈_(kāi)源服務(wù)器端腳本,主要用作 Web 開(kāi)發(fā)工具。在大多數(shù)情況下,它用于生成 Web 服務(wù)器。

          但是,它可以在瀏覽器和命令行中修改和使用。如果您不想在瀏覽器中展示您的代碼輸出,您可以決定通過(guò)終端來(lái)描繪它。該工具利用 Zend 引擎,主要應(yīng)用于 Web 開(kāi)發(fā)活動(dòng),根據(jù)給定的需求執(zhí)行任務(wù)。

          Facebook 是對(duì) PHP 進(jìn)行更改的社交媒體平臺(tái)之一,包括 JPHP、HipHop 虛擬機(jī)(也稱為 HPVM)和 Parrot。

          為什么你應(yīng)該使用 PHP

          在過(guò)去一年中,大約 22% 的 Web 開(kāi)發(fā)人員每天都在使用 PHP,尤其是在運(yùn)行繁重的編程操作時(shí)。最初,許多人堅(jiān)信這種編程語(yǔ)言會(huì)在不久的將來(lái)終結(jié)。但是,由于該工具至今仍\變得越來(lái)越強(qiáng)大,因此忽略了這一點(diǎn)。

          許多人在他們的所有 Web 開(kāi)發(fā)操作中仍然依賴 PHP。以下是您應(yīng)該更喜歡使用它的原因。

          HTML 友好

          如果您習(xí)慣使用 HTML,您可以輕松地轉(zhuǎn)向 PHP,而不會(huì)遇到任何麻煩。此外,您可以根據(jù)自己的喜好選擇在 HTML 外部或內(nèi)部安裝 PHP。另外,您應(yīng)該記住,PHP 和 HTML 可以互換,并且一切仍然可以順利運(yùn)行。

          網(wǎng)絡(luò)兼容性

          您可以輕松地將 PHP 與跨行業(yè)發(fā)展的任何其他技術(shù)集成。如果需要,您使用的幾乎所有托管服務(wù)都有采用 PHP 的空間。它是一個(gè)通用且靈活的選項(xiàng),可以輕松與其他可用的編程語(yǔ)言對(duì)應(yīng)。

          跨平臺(tái)

          該工具可以適用于所有可用的主要操作系統(tǒng)。其中一些系統(tǒng)包括 Mac OS、Linux 和 Windows。此外,PHP 已被證明與任何主要的 Web 服務(wù)器兼容,例如 OpenBSD、Apache 和 Nginx。此外,Microsoft Azure 和 Amazon AWS 等所有云平臺(tái)都可以選擇啟用 PHP。

          連接所有數(shù)據(jù)庫(kù)

          眾所周知,PHP 是一種自適應(yīng) Web 開(kāi)發(fā)語(yǔ)言。它有一個(gè)寬敞的房間,連接著各種數(shù)據(jù)庫(kù),如 MS SQL、Oracle 數(shù)據(jù)庫(kù)和 MySQL。這些功能使開(kāi)發(fā)人員可以自由選擇適合生成的應(yīng)用程序的最佳數(shù)據(jù)庫(kù)。

          PHP的優(yōu)點(diǎn)

          • 它需要更少的維護(hù)

          該工具具有先進(jìn)的功能,使其可以應(yīng)用于多個(gè)領(lǐng)域,因此無(wú)需定期維護(hù)即可順利運(yùn)行。它帶有Model-view-controller,也稱為 MVC,它將每個(gè)應(yīng)用程序劃分為不同的模型、視圖甚至控制器。由于所有內(nèi)容都已正確概述,因此該部門減輕了定期維護(hù)的負(fù)擔(dān)。

          • 相對(duì)便宜

          在您的 Web 開(kāi)發(fā)活動(dòng)中使用 PHP 是完全免費(fèi)的。此外,您無(wú)需支付任何費(fèi)用即可使用其功能和工具。多個(gè)數(shù)據(jù)處理框架的可用性為開(kāi)發(fā)人員進(jìn)行操作創(chuàng)造了良好的環(huán)境。

          • 方便使用的

          您無(wú)需花費(fèi)太多時(shí)間來(lái)學(xué)習(xí)此工具。鑒于它本質(zhì)上是友好的,您可以在最短的時(shí)間內(nèi)輕松學(xué)習(xí)和掌握如何使用它。即使你是第一次接觸這個(gè)工具,你仍然可以掌握它的操作模式。

          PHP 的缺點(diǎn)

          • 安全問(wèn)題

          PHP 是眾所周知的在安全問(wèn)題上享有負(fù)面聲譽(yù)的 Web 開(kāi)發(fā)工具之一。當(dāng)沒(méi)有經(jīng)驗(yàn)的開(kāi)發(fā)人員接管該平臺(tái)時(shí),他們往往會(huì)生成帶有大量漏洞的網(wǎng)站。這使得該工具看起來(lái)是最不安全的選項(xiàng)。

          • 框架質(zhì)量

          由于 PHP 框架是開(kāi)源的,因此生成的輸出質(zhì)量不達(dá)標(biāo)。因此,大多數(shù)框架缺乏資源和適當(dāng)?shù)闹С謥?lái)提高質(zhì)量標(biāo)準(zhǔn)。

          • 過(guò)時(shí)的模型

          技術(shù)日夜不斷變化,因此需要頻繁更新。隨著機(jī)器學(xué)習(xí)的發(fā)展,Python 等新的編程語(yǔ)言也在發(fā)展。您無(wú)法將這些進(jìn)步與 PHP 進(jìn)行比較,因?yàn)樗鼡碛幸粋€(gè)包含不同功能和技術(shù)的庫(kù)。

          結(jié)論

          上述 Web 開(kāi)發(fā)技術(shù)有其消極和積極的一面,您可以根據(jù)您想要?jiǎng)?chuàng)建的內(nèi)容進(jìn)行選擇。所有這兩個(gè)工具都在 Web 開(kāi)發(fā)活動(dòng)中發(fā)揮著巨大的作用。您在一天結(jié)束時(shí)做出的選擇主要取決于您的要求和您想要擁有的東西。請(qǐng)注意,一種工具可能具有您需要的所有功能,而另一種則缺乏,因此您有機(jī)會(huì)做出明智的決定。




          謝謝大家閱讀,喜歡的朋友請(qǐng)關(guān)注點(diǎn)贊轉(zhuǎn)發(fā),帶你了解最新技術(shù)趨勢(shì)。


          作者 | Beau Beauchamp 譯者 | 彎月
          出品 | CSDN(ID:CSDNnews)
          在流行文化的沖擊下,也許很多人都不贊同本文表達(dá)的觀點(diǎn),但我毅然決定再一次逆流而上。我認(rèn)為,雖然 PHP 百般受輕視,但這門編程語(yǔ)言的流行度比以往任何時(shí)候都高!
          為什么?怎么 PHP 還沒(méi)死嗎?不是有那么多比 PHP 更優(yōu)秀的編程語(yǔ)言嗎?
          不,并沒(méi)有。如果真的有這樣的語(yǔ)言的話,它們?cè)缇蛶ь^干掉 PHP 了。我們需要重新審視什么才是“更好”的編程語(yǔ)言。
          為什么 PHP 還沒(méi)死?如果你表示不解,那可能是因?yàn)槟悴⒉涣私饩幊?、程序員、市場(chǎng)和民主。實(shí)際上,這與代碼、函數(shù)或語(yǔ)法沒(méi)有任何關(guān)系。

          抨擊 PHP 成為了一種時(shí)尚

          如今,為了在編程的圈子內(nèi)走紅,你就必須抨擊與“主流文化”吹捧的編程語(yǔ)言有競(jìng)爭(zhēng)關(guān)系的語(yǔ)言。這與語(yǔ)言本身的功能無(wú)關(guān),只是因?yàn)槲幕陀悬c(diǎn)像宗教。
          程序員是一群固執(zhí)己見(jiàn)的人,非常傲慢,但我們必須克服這些缺點(diǎn)。我們喜歡抨擊我們不喜歡和不使用的編程語(yǔ)言。你會(huì)發(fā)現(xiàn)有些工程師說(shuō) Java 很糟糕,有些說(shuō) C# 很糟糕,而有些則說(shuō) Go 很糟糕。至于具體是什么語(yǔ)言根本不重要,總會(huì)有人批評(píng)。
          此外,還有一種更深的鄙視,最近這段日子 PHP 和 Python 之間默默地展開(kāi)了一場(chǎng)較量,似乎學(xué)術(shù)界正在策劃一場(chǎng)陰謀:干掉 PHP,讓 Python 取而代之。
          如今,你甚至?xí)l(fā)現(xiàn)在一些維基百科的頁(yè)面中,LAMP 技術(shù)棧中的 P 居然神奇地變成了 Python。20 年前,在我使用LAMP 的時(shí)候,這幾個(gè)字母指代的可是 Linux、Apache、MySQL 和 PHP,當(dāng)時(shí)的 P 指的可是 PHP,而不是 Python,甚至不是Perl。我并不是說(shuō)這些定義不能改變。也許是我的疑心太重了?不夠包容?還說(shuō) Python 占據(jù)了 PHP 的位置?
          對(duì)于我們大多數(shù)人來(lái)說(shuō),大學(xué)里學(xué)習(xí)了 Python,還有其他一些實(shí)際工作中可能永遠(yuǎn)也用不到的小眾語(yǔ)言。雖然我們的老師或其他菜鳥會(huì)說(shuō):“PHP 很糟糕”,但也許他們中的大多數(shù)人從未編寫過(guò)一行 PHP 代碼。
          事實(shí)上,你甚至可能會(huì)懷疑是否真的有人從事專業(yè)的 PHP 編程工作。普通人對(duì) PHP 的不屑一顧實(shí)際上并不合邏輯,而且也不是發(fā)自內(nèi)心的。只不過(guò),與朋友在咖啡館聊天的時(shí)候,我們習(xí)慣于一起鄙視某些明星、網(wǎng)紅或者 PHP。
          此外,還有一些編程純粹主義者,他們?cè)敢饫速M(fèi)寶貴的時(shí)間吹毛求疵,討論 PHP 如何糟糕。大多數(shù)這樣的爭(zhēng)論都會(huì)圍繞個(gè)人的偏好,或者他們不喜歡的細(xì)微差別,為的是宣傳自己喜歡的編程語(yǔ)言,并希望這些語(yǔ)言一統(tǒng)天下!
          他們的抱怨沒(méi)完沒(méi)了:
          • PHP 的類型很弱,而且還有很多糟糕的代碼。
          Javascript 和 Node.js 又何嘗不是呢?你不是一樣在用?
          • PHP 的函數(shù)太多了。
          有些人就連這都要抱怨,是因?yàn)樘奖懔藛幔?/span>
          • 函數(shù)名不一致。
          當(dāng)一種語(yǔ)言真正做到民主化,而不是由哪個(gè)“專家高手”憑一己之力一手編寫而成,就會(huì)出現(xiàn)這樣的問(wèn)題。
          可見(jiàn),他們對(duì) PHP 的批評(píng)通常都源于個(gè)人偏好,或者只是雞蛋里挑骨頭。要是這么說(shuō)的話,我們也可以針對(duì)Python、C#、Java、Go、Javascript 或其他任何語(yǔ)言挑出相同的毛病。作為程序員,我們喜歡抱怨,滿腹牢騷。
          但作為程序員,我們喜歡抨擊 PHP 的真正原因是,我們固有的狂妄自大和赤裸裸地嫉妒。


          PHP更容易使用

          PHP誕生于 90 年代中期,甚至在我們中的一些人出生之前。我從 2000 年初開(kāi)始使用 PHP,當(dāng)時(shí)的版本正在從 4 向 5 過(guò)渡,后來(lái)我開(kāi)始使用 CodeIgniter、ZendFramework,在自己的框架中編寫應(yīng)用。
          我認(rèn)為 PHP 長(zhǎng)盛不衰的原因,也是這門語(yǔ)言不會(huì)消亡的主要原因是,它不僅嵌入到了各類新舊應(yīng)用程序中,也嵌入到了新老程序員的腦海中,他們使用 PHP 已經(jīng)長(zhǎng)達(dá)幾十年了。我們不會(huì)離世,我們編寫的商業(yè)代碼也不會(huì)消失。
          有趣的是,Python 誕生于 1991 年,那時(shí)PHP 還沒(méi)有出現(xiàn)。雖然 Python 的生命更長(zhǎng),但它的采用未能達(dá)到 PHP 如今的水平。
          為什么?
          在我個(gè)人看來(lái),與 PHP 相比,Python 使用起來(lái)很痛苦。這個(gè)問(wèn)題在 Python 3 中有所緩解,但在 15 年前,Python 還沒(méi)有各種開(kāi)箱即用的、“花里胡哨”的函數(shù),遠(yuǎn)比不上 PHP。你必須手動(dòng)安裝很多功能。
          此外,我發(fā)現(xiàn) Pyhon 還有一個(gè)問(wèn)題,而且這個(gè)問(wèn)題一直延續(xù)至今,那就是空格。我討厭使用空格作為分隔符的語(yǔ)法。我希望按照自己喜歡的方式分隔代碼,而且不希望編程語(yǔ)言礙手礙腳。無(wú)論你再怎么說(shuō)得天花亂墜,代碼是我的,我想怎么寫就怎么寫,誰(shuí)也管不著。
          Python一直吹噓自己的空格語(yǔ)法“易于閱讀”,但這不過(guò)是營(yíng)銷的空話罷了。我個(gè)人認(rèn)為,Python 使用了最糟糕的語(yǔ)法,還不自知。
          這種自以為是的語(yǔ)法很容易引入錯(cuò)誤。最初,在 IDE 能夠所有這些問(wèn)題之前,我相信沒(méi)有程序員喜歡這種語(yǔ)法。至少我個(gè)人就不喜歡。這也是幾十年來(lái)該語(yǔ)言的采用率一直很低迷的部分原因。其實(shí)就是因?yàn)檫@種語(yǔ)法對(duì)用戶不夠友好。
          此外,我認(rèn)為早年間人們并不知道 Python 的存在。它作為一種腳本語(yǔ)言嵌入到 Linux 發(fā)行版中,這就是它的主要用途。沒(méi)有人會(huì)跑出來(lái)大喊道:“我可以用 Python 構(gòu)建網(wǎng)站了!”
          事實(shí)上,雖然我們可以用 Python 做網(wǎng)站,但優(yōu)秀的工程師都知道 Python 的強(qiáng)項(xiàng)并不是做網(wǎng)站。除了我個(gè)人對(duì)語(yǔ)法的偏好之外,Python 在功能上是一門非常強(qiáng)大的語(yǔ)言,特別是它的庫(kù)可以用在數(shù)據(jù)科學(xué)或其他側(cè)重于數(shù)學(xué)計(jì)算的地方,這些情況下精度是必須滿足的要求。


          PHP是任何人都可以使用的語(yǔ)言

          我同意,在過(guò)去的 15 年間,Python 推出了許多更新,并超越了 PHP,只不過(guò)這些更新晚了十年。
          2008年發(fā)布的 Python 3 實(shí)際上打破了向后兼容性。Python 2 的代碼無(wú)法與 Python 3 一起運(yùn)行,你需要做一定的修改。但是,如果有一百萬(wàn)行代碼需要更新,那就沒(méi)戲了,尤其是在企業(yè)環(huán)境中。
          公平地說(shuō),PHP 7 和 8 也破壞了一些 PHP5 的代碼(沒(méi)有 PHP 6)。我是ZendFramework 1 社區(qū)的一員,該社區(qū)幫忙更新了運(yùn)行在 PHP 7 和 8 之上的框架。幸運(yùn)的是,在將 ZF1 升級(jí)到 PHP 7 和 8 時(shí),我的企業(yè)遺留代碼幾乎沒(méi)有損壞。所以,大部分 PHP 5.6 代碼仍然可以向后兼容。
          但也許真正幫助 PHP 一炮而紅的事件是,一家成立于 2005 年的名為 Automattic 的小型初創(chuàng)公司。
          WordPress剛開(kāi)始的時(shí)候很不起眼,但它不僅改變了開(kāi)發(fā)人員,而且也改變了普通人發(fā)布網(wǎng)站的方式。
          到目前為止,最好的發(fā)布選擇是 Drupal、Joomla 或其他一些BBS 軟件。但這些軟件使用起來(lái)都很痛苦,因?yàn)榫帉戇@些軟件的人的思考方式更接近程序員,而不是普通用戶。
          如果 WordPress 是用 Python 編寫的,那么可能 PHP 真的會(huì)走下坡路。但我敢說(shuō),Python 會(huì)阻礙 WordPress 的迅速崛起,甚至完全阻止。
          采用以及擴(kuò)展貢獻(xiàn)者的支持將關(guān)系到語(yǔ)言或應(yīng)用程序在開(kāi)源市場(chǎng)中的生存。而易用性是刺激采用率迅速上漲的關(guān)鍵。
          作為一名受過(guò)大學(xué)教育的軟件工程師,無(wú)論你如何詆毀 PHP,都無(wú)法否認(rèn) PHP 不僅受到了專業(yè)軟件工程師的青睞,而且就連兼職人員、家庭主婦、平面設(shè)計(jì)師、公司經(jīng)理、企業(yè)家和小學(xué)生都能使用計(jì)算機(jī)編寫網(wǎng)頁(yè)。
          可以說(shuō) PHP 是信息時(shí)代的 BASIC(語(yǔ)言)。
          作為一名軟件工程師,你的思考方式必然和軟件工程師一樣,而不是那些只想利用有限的時(shí)間和資源為自己的小企業(yè)建立一個(gè)網(wǎng)站的人。
          而 WordPress 和 PHP 改變了這一切。
          WordPress本身很容易使用,但功能很有限。普通人可以利用 WordPress 的插件架構(gòu),編寫很小的 PHP 代碼片段,他們不需要重寫整個(gè)類或成為軟件工程師來(lái)完成這些工作。
          數(shù)以百萬(wàn)計(jì)的業(yè)余程序員通過(guò) WordPress 在網(wǎng)絡(luò)上與其他人分享他們的成功,并發(fā)展了這個(gè)平臺(tái)。
          通俗易懂的 PHP 語(yǔ)言讓普通人也可以編寫有效的代碼。簡(jiǎn)單、沒(méi)有特殊要求、弱類型、不需要編譯,就可以運(yùn)行。


          PHP與互聯(lián)網(wǎng)

          15年后的今天,PHP 為 78% 的 Web 提供支持。僅 WordPress 就占所有網(wǎng)站的近 40%,并擁有近 2/3 的 CMS 市場(chǎng)份額!關(guān)鍵是Python 希望占有這些市場(chǎng)的 10%!盡管 Python 純粹主義者對(duì) PHP 充滿仇恨,但 Python 僅占 Web 的不到 1.5%。
          有些企業(yè)客戶的招聘人員曾聯(lián)系過(guò)我,他們希望刪除所有的 Python Web 代碼,并換成 PHP。你可能會(huì)感到很震驚,但其實(shí)這種情況應(yīng)該更多。為什么?因?yàn)槔蠈?shí)說(shuō),Web 不是 Python 的主戰(zhàn)場(chǎng),Python的主要用戶是數(shù)據(jù)科學(xué)和其他專家,而且有這方面經(jīng)驗(yàn)的人才供不應(yīng)求。
          通常公司需要靈活。當(dāng)需要擴(kuò)大團(tuán)隊(duì)或有人離職時(shí),他們不可能花費(fèi)數(shù)周或數(shù)月來(lái)尋找新的 Python 人員。而且 Python 工程師也很貴。
          對(duì)于小型企業(yè)來(lái)說(shuō),尋找 PHP 程序員要容易得多,而且如有必要甚至可以進(jìn)行培訓(xùn)。關(guān)鍵是你可以找到擁有數(shù)十年經(jīng)驗(yàn)的高級(jí) PHP 架構(gòu)師,比找相應(yīng)的 Python 人員要容易得多。
          關(guān)鍵是,如果你在一家公司工作,如果沒(méi)有正當(dāng)理由就想用 Python 編寫網(wǎng)頁(yè)或中間件,那么就會(huì)遭到責(zé)備。因?yàn)楣緯?huì)為此背負(fù)上 Python 代碼,將來(lái)他們需要花費(fèi)巨額資金來(lái)刪除這些代碼,并用正確的工具替換。
          應(yīng)用程序架構(gòu)師的首要工作是,針對(duì)企業(yè)的實(shí)際情況,選擇最有效的技術(shù)。不能因?yàn)榫W(wǎng)上非常流行,或者是學(xué)校里教了某種語(yǔ)言,你就根據(jù)自己的喜好來(lái)選擇。
          我建議完全用 Python 編寫 SaaS 應(yīng)用程序的情況非常少,考慮到 Python 的 Web市場(chǎng)份額,似乎大多數(shù)應(yīng)用程序架構(gòu)師都會(huì)選擇正確的語(yǔ)言。他們會(huì)在 Python 最擅長(zhǎng)的領(lǐng)域選擇 Python,并根據(jù) PHP 的最大優(yōu)勢(shì)選擇 PHP。

          總結(jié)

          作為工程師,我們都喜歡使用自己熟悉的語(yǔ)言,而且我們喜歡對(duì)自己不熟悉的技術(shù)嗤之以鼻。
          各個(gè)高校都在嘗試將 Python 作為通用的商業(yè)語(yǔ)言。但實(shí)際上,Python 更適合運(yùn)行服務(wù)器、數(shù)據(jù)科學(xué)、處理大型復(fù)雜數(shù)字,乃至加密貨幣的挖礦等。
          而 PHP 是大眾語(yǔ)言,它已成為互聯(lián)網(wǎng)事實(shí)上的語(yǔ)言。
          所以,如果你喜歡,可以繼續(xù)抨擊 PHP,繼續(xù)鄙視它。但無(wú)論怎樣,PHP 仍然是迄今為止網(wǎng)絡(luò)上使用最廣泛的語(yǔ)言,隨著 WordPress 的持續(xù)飛速增長(zhǎng)和 PHP 7 和 8 的新速度,這種地位在短期內(nèi)不會(huì)改變。
          參考鏈接:
          https://beau-beauchamp.medium.com/php-is-killing-python-2be459364284

          《新程序員003》正式上市,50余位技術(shù)專家共同創(chuàng)作,云原生和數(shù)字化的開(kāi)發(fā)者們的一本技術(shù)精選圖書。內(nèi)容既有發(fā)展趨勢(shì)及方法論結(jié)構(gòu),華為、阿里、字節(jié)跳動(dòng)、網(wǎng)易、快手、微軟、亞馬遜、英特爾、西門子、施耐德等30多家知名公司云原生和數(shù)字化一手實(shí)戰(zhàn)經(jīng)驗(yàn)!


          主站蜘蛛池模板: 色欲精品国产一区二区三区AV| 无码福利一区二区三区| 久久精品一区二区三区不卡| 亚洲成AV人片一区二区密柚| 国产主播在线一区| 日韩一区二区三区视频| 亚洲乱码一区二区三区在线观看| 人妻体体内射精一区二区 | 国产一区二区电影| 国产成人一区二区三区高清| 国产大秀视频在线一区二区| 久久国产精品一区二区| 亚洲午夜福利AV一区二区无码| 国产伦理一区二区三区| 在线一区二区三区| 无码人妻啪啪一区二区| av无码免费一区二区三区| 性无码免费一区二区三区在线| 99久久精品国产高清一区二区| 一区二区三区免费在线视频 | 中文字幕一区二区三区人妻少妇| 一区二区乱子伦在线播放| 一区二区三区免费在线观看| 狠狠综合久久av一区二区| 亚洲AV日韩AV一区二区三曲| 色欲AV蜜桃一区二区三| 人妻少妇精品视频三区二区一区 | 久久一区二区三区精华液使用方法| 国产免费一区二区视频| 国产在线视频一区二区三区98| 久久一区二区三区99| 亚洲国产综合无码一区 | 无码人妻一区二区三区免费| 多人伦精品一区二区三区视频| 天堂一区人妻无码| 日本精品视频一区二区三区| 高清无码一区二区在线观看吞精| 无码8090精品久久一区| 亚洲av高清在线观看一区二区| 精品一区二区三区免费观看| 一区二区三区国产|