Node.js被高估了嗎?

1、基於自己的期望

2、基於實際開發、使用過程中的體驗

3、基於就業市場或者技術普及度

4、自己的角度,等等


說那種全用非同步回調能提高性能(某些情況)我信,你說能提高開發效率我是不信的. node本身在對非同步的處理方面還是非常割裂.

官方的API基本都是callback

promise是一種風格

generator也是一種風格

很多新的庫嘗試了async/await的寫法(這種我認為是最符合人類直覺的)

你要混著寫,那就更蛋疼了···

真希望V8抓緊把async實現了

或者node-chakracore能發展到用於生產環境


Node本身Non-Blocking,Async在Web後台應用的潛力,被高估了,Async Programming的難度對普及能力的影響,被低估了。PHP,Python有成熟棧,代碼好寫,長期成本低很多。僅僅憑著一個特性想擠進這個市場是很難的。RoR這麼好的東西,擠了好多年,也才個位數的市場份額。

但時間越久,語言和平台的概念對開發社區的影響力往往大於它們直接的應用價值。因Node Non-Blocking能力而部署到生產環境的應用並沒有感覺上的多,但後台服務非阻塞化早已經是不少架構師菜單上的一道佳肴,不一定用Node,可能是Python,可能是Go,可能是別的。但我們都知道,在Node出現之前,沒有多少人知道Non-Blocking,Async,Reactive Programming。就像在Ruby火爆之前,沒多少人拿DSL解決問題。RoR用的人遠沒有PHP多,但它帶來的開發理念已經被吸收到其他語言了。概念一直都是存在的,但是Node,Ruby把這些機器有用的概念,更重要的,設計和思考方式,發揚光大了。

如何寫出好的Async程序,如何用好Reactive模式幫助自己完成設計和代碼實現,如何更好地利用Non-Blocking機制,這些思路都是因為Node社區的影響。雖然不一定用Javascript,不一定跑在Node上。

Node沒有被高估,不應該被低估。


1. 對於我而言,Node.js確實是被高估,尤其是作為後端這一個層次

2. 對於整個行業而言,Node.js作為服務端渲染這個層次也僅僅AT有大範圍的實踐(B就不說了),Node.js的作用還有待中小型網際網路公司挖掘

3. 作為就業前景,Node.js是實打實低估價格了,要學會Node.js不是單純的js,而是整個solution,是前端工業化工程化的基礎


你說這話,是不是你本身不太懂node.js?本人就是搞JS的,是不是想打架?你準備帶多少人來?


他丫的再折騰,將來充其量也就幹掉拍(p)黃(h)瓜(p)

至於ES6/7寫起來的確是是挺爽的~


題主的提問太泛了,我也就泛泛的聊下吧.

本人c#,java後端,偶爾客串下前端.

首先,後端node.js的難度,應該是被絕大多數人低估了,以為會寫js就會了後端開發.

應該說後端和前端的知識體系還是有不小的差距的.語言知識其中一項,而且是不太重要的一項.

語言棧的統一更多是為了共用驗證,模板這些方面,而不是少學一門語言.

實際開發體驗這方面,node做的確實不錯,我用vue + webpack + http-proxy 做個調用soa服務的封裝中心,開發效率非常高,開發體驗也很棒,這點node的一些工程化工具,做的很不錯.

但node的應用也是比較窄的,真正後端複雜的數據流,並發,事務等玩意,基本就不是node的領域了.

從目前階段來看,node非常適合用來讓前端接管部分後端工作,做一個model-&<--&>view的過渡的角色,同時藉助node上的工具如打包,task,hot-load等,提升開發效率和體驗.

結論:node的前景被高估了,但node的使用和推廣程度被低估了,這是個好東西,大家都應該用起來,但也別抱太大期望.


Node.js沒有被高估。

評價Nodel.js不能光看其在服務端的貢獻。事實上它這幾年最大的價值是挖掘了javascript的潛力,為這幾年前端變革奠定了基礎。

而前端的變革還在開始階段,當前端革新進入中後段,趨於穩定;當現在一大批在前端造輪子的程序員轉攻服務端的時候......

拭目以待吧,我覺得我們可能嚴重低估了Node.js的價值。


還有一種看法是,這種高估也許會變成新的動勢,就跟股票一樣。

我是ror用戶,堅信ror高於一切。stackoverflow有人問,是什麼讓ruby沒法像node一樣快?答案是:沒有什麼別的原因,是錢。Google財大氣粗,在搞瀏覽器時,產出這麼一個副業,就足以撼動其他競爭對手。領導v8虛擬機的那位大神有多強?他有25年在虛擬機工作的經驗,而很多給ruby做貢獻的人,連25歲都沒有。實際上那位大神在做v8前,參與過hotspot等一系列重要虛擬機的研發,可以說是看著虛擬機長大的。

回到問題本身,其他語言和平台,很難有這樣的大神進行工作。而不管我ror如何靈活高效,執行效率自然是無法跟node相比的。由於種種原因,node聚集了大量人氣。基數大了,反過來促進其基礎建設。語言特性是js弱項,但是服務端運行的js很快進化到es5、es6。社區甚至推出babel來把高版本es編譯回低版本來解決兼容性問題。

最後node被高估嗎?就跟房地產泡沫一樣,十幾年不破。最終怎麼樣不知道,但是很多人都可以從中受益。


謝邀。nodejs有沒有具體被高估這個問題,我不清楚大家是怎麼看待的。不過首先它能存在並保持較高的熱度,說明這貨的確是有優勢的,比如io處理等方面。但這也並不說明它就如同萬金油一般適用於所有場景。當然了,nodejs也許會讓少數浮躁的前端騷年輕易寫出幾個curd,就產生老子是個全棧的錯覺。。。但這和node被高估不被高估沒啥關係。是人的問題。。


Node.js還沒有當年的J2EE/ASP .NET好用,而且我說的好用不是工具鏈和庫,而是編程心智模型。Node.js無非是「用一種語言就可以寫任何程序」的幻想而已


越來越NB的是JavaScript 。

Node.JS? who care !


不是Node被高估了,而是很多用Node的人高估了自己的實力。你看人家阿里的Node,可是幹了不少大事情!


沒有給出一個明確的標準,怎麼判定高估低估?


問這問題,是不是不想給高工資啊?


1、基於自己的期望

NodeJS就其本身有至少三重價值:

* 實現了JS的模塊化,使得JS的純基礎庫變成可能

* 提供了EventLoop機制,使得用JS做嚴肅伺服器端應用變成可能

* 提供了一個方便的服務端開發範式,為其它語言和框架提供的樣例

就如它自己所說:

Node.js? is a JavaScript runtime built on Chrome"s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

NodeJS是一個Event Driven和提供Non Blocking IO(這很重要)的一個輕量級和高效的JavaScript Runtime

在NodeJS本身來說,目前它做得非常好,沒有什麼高估之類的。。。。

2、基於實際開發、使用過程中的體驗

在考慮這個問題的時候,一定要記住,NodeJS只是一個JavaScript Runtime。你可以用它的能力做很多事情。我舉幾個我用過的例子:

* 你可以用NodeJS本身的Non Blocking IO,Lightweight和Fast的特性。用它做WebSocket Server。這個是NodeJS的重要功能之一。它能提供的響應效率是非常高的

* 你可以用NodeJS來做CLI工具。這也是NodeJS的很重要的功能之一,比如,你可以用babel來編譯React的jsx,NodeJS的命令行工具不算多,但是還是很有用的,尤其是做小工具

* NodeJS做Web開發,反倒從一開始,不是特別的靠譜,其實到現在,也不是特別的完美,不過已經好很多了

所以拿我來說,我會用NodeJS,但是,我不會用它來做WebApplication(雖然它可以)。我只會去用它做它最擅長做的事情。

至於Web App,服務端的話,我寧可先用PHP來做,簡單和方便太多了。

3、基於就業市場或者技術普及度

這個就很難說了。就像我之前說的,用NodeJS來做WebApplication,雖然它可以,但是,真要這麼做,陷阱太多,而且不見得能找到真正的專家來諮詢。所以我不是特別建議。

除非你的團隊中有特別了解一種技術的人(或者你能請到這種技術的專家做諮詢)。不然,不要用這種技術。雖然它可能很Cool,很流行,甚至很適合。

每種技術都有坑,做項目卻要講時間和成本。沒人想把項目當課題做。所以,我不覺得NodeJS在這方面有多大的優勢。說實話,在NodeJS的contributors的第一頁裡面,我就沒有看到過中國人。。。有多少嚴肅項目敢拿它來玩呢(除了我之前說的那種做長鏈接伺服器的)?

4、自己的角度,等等

程序員可以有好惡,不過,仍然是Professional,我不覺得自己的角度有什麼做用。我自己對NodeJS的態度就是:

1. 做為JS Runtime,最好

2. 做WebSocket Server,非常好

3. 做Web App服務端開發,不建議

4. 學習和研究,值得

大體如是。


node粉鼓吹的優勢無非就是兩點,非同步io和全棧開發。個人以為這兩點並不算什麼優勢。非同步io在其它語言基本都有c/c++ java python都有相應的非同步io庫,就連web作為主戰場的php都出了非同步io庫,況且說句難聽的,非同步io並不是什麼高大上的技術,天天拿出來秀還是有點low。至於全棧開發,只能說會和精通是不一樣的概念,而且語言的學習成本真的很低,非要前後端統一語言其實毫無必要。


分頁阅读: 1 2