node 簡介 起源

  最近的node 的一篇文章閱讀量很大,因此寫一篇基礎篇供你們分享,拋磚引玉,各取所需。前端

  部份內容來源大神筆記。node

 

Node.js


簡介:@@@@@@@@@@@@@@@@@@@後端

Node.js是目前很是火熱的技術,可是它的誕生經歷卻很奇特。瀏覽器

衆所周知,在Netscape設計出JavaScript後的短短几個月,JavaScript事實上已是前端開發的惟一標準。服務器

後來,微軟經過IE擊敗了Netscape後一統桌面,結果幾年時間,瀏覽器毫無進步。(2001年推出的古老的IE 6到今天仍然有人在使用!)異步

沒有競爭就沒有發展。微軟認爲IE6瀏覽器已經很是完善,幾乎沒有可改進之處,而後解散了IE6開發團隊!而Google卻認爲支持現代Web應用的新一代瀏覽器纔剛剛起步,尤爲是瀏覽器負責運行JavaScript的引擎性能還可提高10倍。性能

先是Mozilla藉助已壯烈犧牲的Netscape遺產在2002年推出了Firefox瀏覽器,緊接着Apple於2003年在開源的KHTML瀏覽器的基礎上推出了WebKit內核的Safari瀏覽器,不過僅限於Mac平臺。優化

隨後,Google也開始建立自家的瀏覽器。他們也看中了WebKit內核,因而基於WebKit內核推出了Chrome瀏覽器。線程

Chrome瀏覽器是跨Windows和Mac平臺的,而且,Google認爲要運行現代Web應用,瀏覽器必須有一個性能很是強勁的JavaScript引擎,因而Google本身開發了一個高性能JavaScript引擎,名字叫V8,以BSD許可證開源。設計

話說有個叫Ryan Dahl的歪果仁,他的工做是用C/C++寫高性能Web服務。對於高性能,異步IO、事件驅動是基本原則,可是用C/C++寫就太痛苦了。因而這位仁兄開始設想用高級語言開發Web服務。他評估了不少種高級語言,發現不少語言雖然同時提供了同步IO和異步IO,可是開發人員一旦用了同步IO,他們就再也懶得寫異步IO了,因此,最終,Ryan瞄向了JavaScript。

由於JavaScript是單線程執行,根本不能進行同步IO操做,因此,JavaScript的這一「缺陷」致使了它只能使用異步IO。

選定了開發語言,還要有運行時引擎。這位仁兄曾考慮過本身寫一個,不過明智地放棄了,由於V8就是開源的JavaScript引擎。讓Google投資去優化V8,咱只負責改造一下拿來用,還不用付錢,這個買賣很划算。

因而在2009年,Ryan正式推出了基於JavaScript語言和V8引擎的開源Web服務器項目,命名爲Node.js。雖然名字很土,可是,Node第一次把JavaScript帶入到後端服務器開發,加上世界上已經有無數的JavaScript開發人員,因此Node一會兒就火了起來。

相關文章
相關標籤/搜索