node.js - nodejs与java优劣
PHP中文网
PHP中文网 2017-04-17 14:57:42
0
10
846

为什么现在nodeJs只适合做中间层,Java的地位撼动不了

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(10)
迷茫

nodeJs 高併發 ,更加靈活,java更加穩定! ~~

Peter_Zhu

java強在計算。
node強在IO,並且同是js堆疊,對前端比較友好,而恰好在應用複雜後,前端需要來處理controller了,而Java做好接口服務的職責就好。
另一方面,node作為中間層,以非同步的特性,也可以一定程度降低異質系統的差異化成本吧。

迷茫

針對樓主的問題來回答。
1.為什麼nodejs為什麼只適合做中間層?
不妨換個思維,nodejs去做業務層、資料層會怎麼樣?我用純nodejs做過應用,發現業務邏輯層太難寫了,由於nodejs天生的語言缺陷,複雜的邏輯在碰到一堆callback的時候代碼簡直沒法看,即使用了promise之類的庫,也沒辦法完全彌補這個缺陷。大型的網站架構非常注重可維護性,程式碼可讀性低,可維護性自然低了。
2.為什麼撼動不了java的地位?
兩者的定位本來就不同,為什麼要取代呢?兩個語言存在不一定要是你死我活的,大型it專案往往是多語言結合的,取長補短,複雜的業務邏輯用java來做,用nodejs處理一些路由映射和參數校驗,前端工程師也能部分參與後台工程師的工作,這樣專案可擴展性其實更好。

PHPzhong

node或說js的特性(單線程,異步,弱型別)決定了它比較適合快速的做簡單的東西,你可以不用考慮很多底層的東西,不用考慮資料型別轉換,完全不用應用伺服器,很快就做出一個應用。但是當應用的體積龐大之後,有一些問題就會暴露出來。這裡不說效率,單單是程式碼的可維護性上,就差java很多。相對來說,java限制比較多,文法比較嚴格,但這些限制決定了java的程式都會有個風格比較一致的外表,比較容易閱讀和維護。

所以一般來說,node不會用來實現比較複雜的業務邏輯。物件導向的語言在控制業務上有很強的能力,例如java。

而且,java流行的時間遠比node早,國內很多商業公司,包括銀行,他們的業務系統都是java實現的。在這方面,這些公司沉澱了許多經驗,也投入了許多資源。即使他們的業務比較適合用node,也是會逐步而不是完全取代java。例如,先用node實作路由和渲染。我現在正在做的專案就是類似這種。

但以上都不是不變的,好的node程式設計師能寫出比爛的java程式設計師更好的應用,這是毫無疑問的。就像我一位同事所說,java能保證程序的底限,因為它本身就有強制性的諸多原則,而且還有面向對象的諸多知識例如設計模式可供參考。但是node,是沒有上限的,同時,也是沒有下限的。

迷茫

看看2者的社區,再過3年,這個問題的答案就完全不同了。語言不是關鍵,關鍵是人,活躍在社區的人,人才是創造的根本。其實js這種大家都認為是玩具的語言,沒想到能走到這一步。

Ty80

Node.JS的最大優勢就是非同步,但是回呼增加了程式設計的複雜度,而且JS對物件導向支援也不好.

大家讲道理

nodejs適合做簡單業務,比如說基於HTTP API接口,相反如果用它來做個BOSS(Business . Operation Support System,業務內容支撐系統),就顯得單薄了些。再說一些常駐記憶體的任務,比如說訊息佇列類別的任務,用nodejs也可以做,但是感覺太彆扭,這個時候還是覺得java好一些。
當然nodejs的長處就是開發效率高,對於一些業務場景比較單一的公司是比較適合的。
總之,程式語言的選型和公司業務是掛鉤的,具體情況也具體分析。

刘奇

因為你的問題太簡單粗暴:nodejs 是個平台,而java 是個語言,這兩個根本沒辦法直接比較,更不要說中間層這個意思都沒表述清楚,那撼動是肯定沒戲了;P

我給你一個簡單粗暴的回答吧:nodejs 相當於一個沒有IDE 的ASP.NET,只是單純輕便快速而已,跟PHP 之類的相比較還好,Java 就算了,完全不是一種類型的工具。而 Java 生態更開放(雖然有 Oracle),總比 Joyent 自己玩好。

左手右手慢动作

nodejs感覺是給前端往全端發展而設計的,java更有歷史沉澱,開發穩定迅速,有許多開源的框架。

洪涛

nodejs --> V8 --> C++ 解釋 --> 編譯機器碼
java --> JVM C++ 解釋 --> 編譯機器碼

理論上, 你可以做java 做的任何事情. 實際上, js 的數字和字符並沒有具體設置, 佔用的內存更多, 在進行計算的時候, 沒有java 高效. 而java 雖然做了具體的數字和字元區分, 但是需要虛擬機器和垃圾記憶體偵測, 效能上要遠低於C++ 和C.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板