php 和nodejs 的各自優勢有哪些,如果無基礎開始,要學那個好?

來源:互聯網
上載者:User

回複內容:

第一次答題,想想還有點小激動呢~
本人目前一直從事Nodejs開發,之前有稍微接觸過PHP,本答案對題不對語言,極端份子不喜勿噴。

首先貼兩張圖,先直觀地感受一下兩種語言不同的魅力,後面我來聊聊我對這兩種語言的理解。
第一張是我用Nodejs為mongoose編寫的簡單的交易回復模組。
第二張是我用PHP寫的類似於Express架構的路由模組。


1.文法
相信看了上面的兩張圖,對於兩種語言最直觀的感覺是文法相差甚大。
首先來說說PHP
PHP 獨特的文法混合了 C、Java、Perl 以及 PHP 自創新的文法。
以上這句話摘於百度百科。PHP的文法是公認的比較獨特的文法了,集百家之長,再加以創新。學習過OO的同學們一定會對此倍感親切。不過對於我並不長的PHP編碼經曆,讓我無法忍受的一點就是PHP的變數名必須在前面加一個$符號了。

至於Nodejs,Node本身就是Javascript語言,對於Web前端指令碼開發人員來說,學習Node簡直是如魚得水。Javascript作為指令碼語言,在代碼的編寫上有極大的自由(畫外音:PHP也是指令碼語言好麼!),但是Javascript的非同步編碼風格確實是讓以學習同步編碼風格的語言入門的同學Hold不住。

在文法方面,我更傾向於Nodejs(畢竟人家是寫Javascript出身的233333)。PHP對於臣妾來說寫的實在太累啦~

2.效率
這一點其實沒有必要比較了,
Web語言效率問題,PHP還是Nodejs
看一下這裡一樓的大大說的。
Nodejs憑藉高效的V8引擎和它非阻塞非同步I/O的特性,在其執行效率上遠遠超過了其他的 指令碼語言。
Node.js比PHP快14倍!
這裡這位大大在效率方面分析的更加到位。當然我並不是在追捧Nodejs,就像這位大大說的
這不是簡單語言細節之爭,而是語言架構之爭。將Node.JS這種非同步機制從Javasctipt搬移到其他語言PHP .NET Java其實都會取得比原來堵塞方式有數十倍提高。

3.使用情境
毋庸置疑,這兩種語言都是為Web開發而生。PHP多樣化的內建方法和庫,讓Web開發變得極其的方便和高效,成熟的語言架構也給開發人員提供了足夠高的健壯性和穩定性。而Nodejs以其強大的特性吸引了大量的開發人員為其貢獻擴充庫,Nodejs項目雖然還很年輕,但是已經聚集了大量的開發資源。

4.小結
畢竟對PHP瞭解的較少,所以以上言論中難免有點偏向於Nodejs,但是PHP發展多年屹立不倒肯定是有它的道理的,百度還用的PHP呢。
至於Nodejs,作為一門新興(並不新啊,Javascript可比PHP老多了)語言來講,它獨特的設計特性足夠吸引開發人員向它看了。

最終回到題主的問題,不知道題主說的沒有基礎是指完全沒有編程基礎還是沒有伺服器開發基礎?
如果完全沒有編程基礎的話,我建議題主還是先去學習C語言,先入了這一行,再選工具吧~
如果有編程基礎的話,如果之前是學習OO的,建議先從PHP入手,畢竟更容易過渡,並且網路上對於PHP的資料要比Nodejs多得多。
如果之前學習過Javascript,我還是建議先從PHP入手,就像上面說的,先入了這一行,再選工具。伺服器開發也算一個小行了,如果對伺服器開發不瞭解,對網路機制不瞭解的話,先從PHP著手,把這些相關知識補充起來。
如果實在是被Nodejs的優勢吸引住了的話,我建議先好好學習Javascript進階編程,深入理解一下異原型鏈和回調機制,這會對入手Nodejs有極大的協助。

入行需謹慎,跳坑爬不出啊~

我不生產答案,我只是答案的搬運工!以上大都摘自網路。無基礎學PHP。最簡單的。
nodejs的事件機制對初學者非常不合適。php工程師會叫你學php,因為他會說,php是世界上最好的語言!無任何基礎就 PHP 吧
走 LAMP 系我假設你要開發網站。否則的話,略過以下回答。

無基礎建議從 PHP開始。

世界上60+%以上的網站用PHP開發的,有他自己的道理。
然後你應該學點Javascript,動態部分需要用到它。

Noje.js依託Javascript文法,如果你會JS後,再開始學會好一點。

網站大了以後,一般會改用Java/Scala語言,因為PHP需要解釋執行指令碼,速度上比不上Java編譯後的位元組碼。

小結一下:PHP + JS => Java + JS。

最後,有時間、有興趣的話可以再看一下Scala/Go/Rust等業界最新語言。謝謝。nodejs吧,js順便也就會了,再學學 html css 就可以寫網站了~我沒用過PHP。

如果你什麼語言的基礎都沒有,不建議你直接上nodejs。還是從其他標準一點的後端語言開始接觸物件導向,MVC架構。Ruby,Python,Php首選,打好基礎是關鍵。

新手一上去看到函數式的類實現,估計除了天賦較好的大多數都會搞暈了,JS的類實現不那麼“標準”,對於你理解物件導向是會有混淆的。

如果一上來就用nodejs,你可能會很疑惑傳給createServer那個函數裡的request,response是什麼,response回應標頭之類的又是什麼東西。因為你沒有MVC經驗,不知道Web架構,模板之類的到底是什麼東西,並且JS的物件導向實現的不那麼“標準”,node的資料又不多,基本上沒有多少中文資料,學起來可能會有困難。

如果你有其他物件導向語言基礎(不需要水平太怎麼樣)。JS文法3天,node上手1天,直接看api和一些node架構的源碼吧,當然要熟練那就另當別論了。我覺得對應的應用情境不同,NodeJS應該主要應用在事務較少的web services上,搭配NoSQL資料庫,達到很棒的效能。而且socketio實現web聊天也是Node的一個應用情境。
PHP應用在網頁的呈現上比較好。PHP開發速度也很快,可以用於快速原型,不斷迭代,效率其實還不是很差。
nodejs比php難學一些。而且非同步回調風格很容易讓人踩坑。而且nodejs的調試也不方便。
綜上所述,推薦Python。nodejs不容易寫,先開始php吧寫PHP時可以啟用無腦模式,好方便,但函數命名,參數位置不統一,著實噁心。寫node,額……,算了吧,還是乖乖用Java吧,(逃
  • 相關文章

    聯繫我們

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