亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

node.js未來會超越Java嗎?

node.js未來會超越Java嗎?

喵啊喵啊喵 2016-09-12 18:09:43
查看完整描述

7 回答

已采納
?
慕神7306085

TA貢獻9條經驗 獲得超23個贊

你可能看到了 node.js 的種種優點,但卻忽略了它存在的各種問題:

在虛擬機層面 node.js 基于的 v8 VM 看起來很不錯,但和 Java 的 VM 一比,差距甚遠。在服務器領域,特別是擁有眾多 CPU 和大量內存的環境下,Java 的 VM 幾乎是你能在地球上找到的最好的 VM。而 v8 既不能充分利用多 CPU 的性能,也不能將內存充分利用。你唯一能做的事情就是開很多個 node.js 實例來緩解,但這進一步帶來了更多的問題。

在語言層面 JavaScript 本身的設計讓你感覺很靈活,因為它基本上是不對類型進行約束的,只有當運行過程中發生了錯誤才會提示你,畢竟在瀏覽器環境內,這算不上什么問題;但在一個團隊內進行協作時,你會深刻的明白類型系統如果能在運行前就幫你找出那些低級的類型錯誤問題,將會節省你多少的時間和金錢。特別是別忘了,系統總是在演進的,一個稍微復雜些的業務系統就擁有幾十個乃至上百個類型,而類型修改又往往很頻繁,想想這個過程里會發生些什么你就明白了。

在領域應用層面 node.js 在 Web 開發領域特別是其中的前端部分已經達到了驚人的繁榮程度,甚至有不少重要系統的后端部分也基于 node.js 完成。但如果僅憑這些就輕易的認為 node.js 將會一統全棧打敗包括 Java 在內的其它語言是很幼稚的。首先,在一個大型的系統架構中,整個系統是拆分成很多很小的業務系統的,這些系統往往通過消息隊列(如 RabbitMQ、Kafka 等等)相互連接起來。也許在小型 Web 站點中,你從來沒用過這些。但相信我,在但凡稍微大一些的業務系統中,都是這么干的。這些消息隊列服務存在的理由就是將各個子系統解耦。這樣一來,你可以在前端部分應用 node.js 進行快速開發,在業務處理部分使用 Java 來完成。數據分析系統卻可以使用 Python/Scala (例如基于 Spark)實現。大型業務系統的架構者們都是些經驗豐富的老手,他們知道每個語言/系統的利弊,也知道世界總在變,今天是 node.js、明天也許就是另一個新秀,因此在整個業務系統中,你要做的根本不是“統一”,反而是“分離”。這樣的設計才能夠預留出擴展和變更的機會。


綜上所述,我相信 node.js 會擁有大量的用戶,但其未來發展也存在天花板,適用領域有局限性。

查看完整回答
1 反對 回復 2016-09-14
?
ziom

TA貢獻948條經驗 獲得超1109個贊

不會。

查看完整回答
1 反對 回復 2016-09-14
?
啊丶木木

TA貢獻121條經驗 獲得超119個贊

你覺得是知道java的人多/還是node.js多????java畢竟這么多年.有了完善的系統/短時間內不會被淘汰.但是,以后的事誰知道呢/就像以前的c語言/總有更先進的語言出來,取代現在的語言.

查看完整回答
反對 回復 2016-09-13
?
趙志廣

TA貢獻53條經驗 獲得超17個贊

這種預言不好說,眾所周知,java目前的熱度是建立在其完善的生態上的,而其生態的良好又使得企業和開發者選擇了java語言,形成良性循環。

查看完整回答
反對 回復 2016-09-13
  • 7 回答
  • 0 關注
  • 3631 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號