色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Nodejs未來會超越Java嗎

方一強2年前29瀏覽0評論

Nodejs未來會超越Java嗎?

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

在虛擬機層面 Node.js 基于的 v8 VM 看起來很不錯,但和 Java 的 VM 一比,差距甚遠。在服務器領域,特別是擁有眾多 CPU 和大量內存的環境下,Java 的 VM 幾乎是你能在地球上找到的最好的 VM。而 v8 既不能充分利用多 CPU 的性能,也不能將內存充分利用。你唯一能做的事情就是開很多個 Node.js 實例來緩解,但這進一步帶來了更多的問題。在語言層面 JavaScript 本身的設計讓你感覺很靈活,因為它基本上是不對類型進行約束的,只有當運行過程中發生了錯誤才會提示你,畢竟在瀏覽器環境內,這算不上什么問題;但在一個團隊內進行協作時,你會深刻的明白類型系統如果能在運行前就幫你找出那些低級的類型錯誤問題,將會節省你多少的時間和金錢。特別是別忘了,系統總是在演進的,一個稍微復雜些的業務系統就擁有幾十個乃至上百個類型,而類型修改又往往很頻繁,想想這個過程里會發生些什么你就明白了。(更新:TypeScript 的出現很大程度解決了這個問題,目前在實踐層面而言,至少我們確實知道這個問題能夠解決;而且 WebAssembly 在 Node.js 中的落地未來我們甚至可以期待更好的解決方案)在領域應用層面 Node.js 在 Web 開發領域特別是其中的前端部分已經達到了驚人的繁榮程度,甚至有不少重要系統的后端部分也基于 Node.js 完成。但如果僅憑這些就輕易的認為 Node.js 將會一統全棧打敗包括 Java 在內的其它語言是很幼稚的。首先,在一個大型的系統架構中,整個系統是拆分成很多很小的業務系統的,這些系統往往通過消息隊列(如 RabbitMQ、Kafka 等等)相互連接起來。也許在小型 Web 站點中,你從來沒用過這些。但相信我,在但凡稍微大一些的業務系統中,都是這么干的。這些消息隊列服務存在的理由就是將各個子系統解耦。這樣一來,你可以在前端部分應用 Node.js 進行快速開發,在業務處理部分使用 Java 來完成。數據分析系統卻可以使用 Python/Scala (例如基于 Spark)實現。大型業務系統的架構者們都是些經驗豐富的老手,他們知道每個語言/系統的利弊,也知道世界總在變,今天是 Node.js、明天也許就是另一個新秀,因此在整個業務系統中,你要做的根本不是“統一”,反而是“分離”。這樣的設計才能夠預留出擴展和變更的機會。

總的來看,Node.js 特別適合中小型系統的快速開發,而當系統變得復雜以后,Node.js 更適合充當 Web Gateway 的角色,以及用于前端開發。在這兩方面它擁有絕對優勢。

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

java替代,Nodejs未來會超越Java嗎