三大角度PK,Go語言和Node.js誰勝誰負?

tianxiaoxu發表於2018-06-27

Node.js與Go語言一直是網際網路大戰中的主戰場,雖說按照普通的各項指標對比,那麼這場戰爭可能在很長時間內都難分勝負,但我們還是決定嘗試對這二者做一些研究,併力求做出更準確的判斷。

我們在Quora上發現,很多開發人員都將Go語言視為Node.js的優秀替代者,所以本文將集中探討到底是為什麼會出現這種情況以及為什麼很多企業和開發人員會首選Go語言而不是流行的Node.js。

三大角度PK,Go語言和Node.js誰勝誰負?

效能對比:

首先,只要使用Go語言和Node.js這兩種語言的開發人員都會有感覺,使用Node.js時,CPU效能或記憶體限制任務會變慢。Node.js是基於JavaScript的一種解釋型語言。解釋型語言比大多數編譯語言都慢,使用Node的動態型別特性,其也不會達到Go語言可以實現的原始效能,而Go語言的表現類似於C或C ++。

只有在網路通訊或資料庫互動的情況下,Node.js的效能才能與Go語言相當。

並行和可擴充套件:

這是Go語言和Node.js的另一個戰場,當然在這場戰鬥中,Go語言擊敗了大部分的現代計算語言,Node.js也不例外。因為“goroutines”,Go語言在可擴充套件性方面佔據優勢,goroutines可幫助多個執行緒同時執行,而且,並行任務的執行是高效可靠的。而Node.js是單執行緒,指令按順序執行,這無疑就限制了它在大規模擴充套件期間的能力,在執行大量並行處理時難掩窘態。

語言成熟度:

如果不考慮成熟度,那麼無論是哪兩種語言之間進行比較都是不完整的。Go語言在健壯性和成熟度兩個方面都表現較好,而Node.js因其更改API成為了編寫和使用Node模組的一大障礙。

公平的來看待這兩種語言,Node.js雖然不會馬上退出市場,但是當遇到要開發商業解決方案時,Go語言會是更好的選擇,Go語言如閃電般的效能,goroutine支援極好的可擴充套件性和併發性……都將有助於構建更強大的應用程式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2156900/,如需轉載,請註明出處,否則將追究法律責任。

相關文章