PHP vs Node.js
網(wǎng)絡(luò)正在處于一個日新月異的發(fā)展時代。服務(wù)器端開發(fā)人員在選擇語言的時候非常困惑,有長期占主導(dǎo)地位的語言,例如C、Java和Perl,也有專注于web開發(fā)的語言,例如Ruby、Clojure和Go。只要你的項目運行良好,你的選擇就顯得沒有那么重要了。
但是如何讓這些新的web開發(fā)人員做出一個正確的選擇呢?
我不希望展開一場PHP、NodeJs兩大陣營之間的戰(zhàn)爭,我將會對比這兩種語言所在領(lǐng)域的發(fā)展?fàn)顩r:
PHPRasmus Lerdorf在1994年創(chuàng)造出了PHP。它是由安裝在web服務(wù)器(Apache、Ngix)上的組件運行的。
PHP代碼可以和HTML混合到一塊。 對于初學(xué)者就能很快寫出很有價值的代碼,這并不需要太多的練習(xí)。 這讓PHP變得越來越流行, 現(xiàn)在全球百分之八十的服務(wù)器上都在運行著PHP。全球四分之一的網(wǎng)站都在用的一個內(nèi)容管理系統(tǒng)--WordPress,就是用PHP寫的。
Node.jsRyan Dahl在2009年創(chuàng)造了Node.js。它是基于Google的V8 JavaScript解釋引擎(在Chrome瀏覽器里它負(fù)責(zé)執(zhí)行客戶端的JavaScript代碼)。與其它語言不同的是Node.js內(nèi)置了處理網(wǎng)絡(luò)請求和響應(yīng)的函數(shù)庫,所以你不需要單獨的服務(wù)器(Apache、Ngix)或者其他依賴。
Node.js雖然很新但是很快就獲得了極大的追捧。在很多的大公司都有在使用,例如:Microsoft,Yahoo,LinkedIn和PayPal。
我們所鐘愛的C#、Java、Ruby、Python、Perl、Erlang、C++、Go、Dart、Scala、Haskell等等,它們呢?如果文章里邊比較了如上所有語言的各種參數(shù),文章將會非常長,你還會讀它么?你期望一個程序員了解所有的程序開發(fā)語言嗎?這顯然是不可能的。我主要對PHP和Node.js做了比較,主要原因如下:
首先它們之間值得比較。兩者都是開放源碼,都是致力于web開發(fā),并且都可用于相似的項目。
PHP已經(jīng)發(fā)布了很久了,但是Node.js才剛剛興起,并受到越來越多的關(guān)注。難道PHP的程序員應(yīng)該相信Node.js的宣傳?應(yīng)該考慮轉(zhuǎn)換語言?
我了解,熱愛編程語言,自從20世紀(jì)90年代之后我就一直使用PHP和JavaScript,并且也有幾年的Node.js的經(jīng)驗。除此之外我也涉獵了其他的技術(shù),但是在這里我還不能對他們作出客觀評價。
另外,對多少語言做比較不重要,因為總會有某些地方的某些人抱怨我沒有提到他們語言。
SitePoint上的角逐程序員會花費很多時間來提升他們自己的編程能力。一些人有編程語言之間的延伸能力,但是這些達(dá)到更高層次的人根據(jù)很多的因素來做出他們自己的選擇。從主觀方面來說,你將會推進(jìn)并且捍衛(wèi)你的技術(shù)決策。
SitePoint Smackdowns并沒有采取“選擇適合你自己的,朋友”這樣的觀點。我將會根據(jù)個人的經(jīng)驗、要求和喜好提出建議。你可能不會同意所有的我所說的所有觀點,這并不重要,重要的是你的意見將會給其他人做出更加明智的選擇。
評估方法下面將會對 PHP 和 Node.js 進(jìn)行十個輪次的比較。每個回合都會考量可以應(yīng)用到任意 web 技術(shù)的常見的開發(fā)挑戰(zhàn)。我們不會太深入討論細(xì)節(jié);很少有人會關(guān)心隨機數(shù)生成器或數(shù)組排序的價值。
贏得最多回合的將會是優(yōu)勝者。準(zhǔn)備好了嗎?開始較量吧。。。。。。
第一輪:起步創(chuàng)建一個“Hello World” web 頁面有多快呢?在 PHP 中:
<?php echo 'Hello World!';?>
相關(guān)文章:
1. 不要在HTML中濫用div2. HTTP協(xié)議常用的請求頭和響應(yīng)頭響應(yīng)詳解說明(學(xué)習(xí))3. Electron調(diào)用外接攝像頭并拍照上傳實現(xiàn)詳解4. React優(yōu)雅的封裝SvgIcon組件示例5. HTML5實戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)6. CSS百分比padding制作圖片自適應(yīng)布局7. TypeScript實現(xiàn)十大排序算法之歸并排序示例詳解8. vue前端RSA加密java后端解密的方法實現(xiàn)9. 深入了解React中的合成事件10. CSS清除浮動方法匯總
