首頁>Club>
8
回覆列表
  • 1 # 大程帶你走進美國

    Java作為一種程式語言已經有20多年的歷史了。它首先是由Sun Microsystems建立的,然後被仍然擁有和開發它的Oracle收購。Java作為一種伺服器端語言已經在軟體開發領域佔據主導地位。Java是一種面向物件的編譯語言,它從C++中派生出它的語法。

    Node.js不是程式語言,而是允許在伺服器端執行javascript的執行環境。現在,幾乎和Java一樣古老的JavaScript是一種解釋性的語言,它在客戶端已經使用了相當長的一段時間,直到Node.js出現。node.js的“javascriptEverywhere”概念也使得在後端使用javascript成為可能。

    Node.js於2009首次釋出,現在是一個開源社群專案。

  • 2 # 機械之名

    你可能看到了 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 會擁有大量的使用者,但其未來發展也存在天花板,適用領域有侷限性。

  • 3 # 秦崤萬里

    根本就不在一個領域。java可能被go取代。但是,中小型專案太適合用node.js了。因為其同步單執行緒,使計算變得簡明、直接、最重要的是還很準確。除了時間是隨機性的。

  • 4 # IT拾荒老人

    他們不是一個緯度上的東西,node或者node衍生品在併發和同構上有先天優勢,可是在後端開發上卻是先天不足,真要說java的競爭對手我倒是覺得go更加有潛力,java和go比起來設計理念上確實是差一些,不過java的生態和碼農數量遠遠大於go所以短時間內唱衰java基本是意淫。另外從個人經驗角度來說,語言這個東西其實沒有太大的區別,思考和解決問題的思路才是最重要的,雖然不能說是一通百通,但是語言從來不能決定一個人能走多遠。我個人的建議是c++/rust,java/go,python/node這幾類選一類作為主語言,其他的每樣選一個作為附語言,都需要會

  • 5 # Ftaft

    不論是node還是java,都有各自的優缺點,不能一概而論。通體來說,這兩者都是技術發展長河中的一個亮點,但不是終點。我們正看到go rust的崛起,新的deno也要躍躍欲試,國家正在轉型,前端的孩子可能要經歷一次難度較高學習過程,後端的同學也需要往c沉澱。

  • 中秋節和大豐收的關聯?
  • 如何辨別英語單詞中的重讀音節?