Node簡史

Node.js是什么? 你很可能已經(jīng)有所耳聞,甚至已經(jīng)用上了,你也有可能對它很好奇。
現(xiàn)在Node還很年輕,它的首次亮相是在2009年。自2009年Node.js問世以來,JavaScript漸漸變成了能開發(fā)所有軟件的語言,其地位也越來越重要,不再是只能勉強(qiáng)在瀏覽器上用一下的雞肋語言了。
這里有ECMAScript 2015的功勞,因?yàn)樗鉀Q了之前那些ECMAScript標(biāo)準(zhǔn)中遺留下來的幾個關(guān)鍵問題。Node所用的Google V8引擎就是基于ECMAScript 2015開發(fā)的。ECMAScript 2015是ECMAScript標(biāo)準(zhǔn)的第6個版本,所以有時也被稱為ES6,一般簡寫為ES2015。
Node、React和Electron等技術(shù)創(chuàng)新成果的功勞也不可小覷,是它們讓JavaScript無處不在:從服務(wù)器到瀏覽器,到原生的移動端應(yīng)用程序。甚至像微軟這樣的大公司都對JavaScript敞開了懷抱,也為Node的成功起到推波助瀾的作用。
官網(wǎng)上(http://www.nodejs.org)給Node下的定義是:“一個搭建在Chrome JavaScript運(yùn)行時上的平臺,用于構(gòu)建高速、可伸縮的網(wǎng)絡(luò)程序。Node.js采用的事件驅(qū)動、非阻塞I/O模型,使它既輕量又高效,并成為構(gòu)建運(yùn)行在分布式設(shè)備上的數(shù)據(jù)密集型實(shí)時程序的完美選擇。”
2009
Node.js誕生了
創(chuàng)建了第一版npm(Node.js包管理器和生態(tài))
2010
Express.js web框架誕生了
Socket.io誕生了
2011
npm 1.0版,大公司開始采用Node.js:LinkedIn,Uber等
Hapi.js誕生了
2012
使用率繼續(xù)保持高速增長
2013
使用Node.js的第一個大博客平臺:Ghost
Koa出生了
2014
分歧:io.js是Node.js的主要分支,其目標(biāo)是引入ES6支持,并加快Node.js發(fā)展
2015
Node.js基金會誕生了
io.js合并回Node.js,npm引入私有模塊
Node.js 4(直接跳過1, 2, 3版本)
2016
LeftPad事件
Yarn 誕生了
Node.js 6
2017
npm更注重安全性
Node.js 8
HTTP / 2
V8在其測試套件中引入了Node.js,除了Chrome之外,正式使Node.js成為V8引擎的目標(biāo)平臺
每周下載30億npm
2018
Node.js 10
ES模塊.mjs實(shí)驗(yàn)支持
2019
Node.js 12
V8 更新帶來好多不錯的特性
HTTP 解析速度提升
啟動速度大幅提升
更好的診斷報告和堆分析工具
ES模塊更新
今天為小伙伴們推薦一本Node圖書:
《Node.js實(shí)戰(zhàn)(第2版)》

本書是在《Node.js實(shí)戰(zhàn)》基礎(chǔ)上打造的全新著作,由多位Node核心框架構(gòu)建者和經(jīng)驗(yàn)豐富的Web開發(fā)人員執(zhí)筆,結(jié)合大量實(shí)例介紹如何用JavaScript和Node創(chuàng)建高性能的Web服務(wù)器,涵蓋異步編程、狀態(tài)管理、事件驅(qū)動編程等關(guān)鍵設(shè)計理念,旨在幫助讀者成功晉級全棧開發(fā)。
●前端系統(tǒng)構(gòu)建
●服務(wù)器端框架選擇
●如何用Express從頭開始搭建Web程序
●與數(shù)據(jù)庫的交互
●掌握非阻塞I/O
●Node的事件輪詢
●測試與部署
●Web程序模板
●用Node開發(fā)命令行工具和桌面軟件
第1版贊譽(yù)
“內(nèi)容循序漸進(jìn),由淺入深。”
——Node.js項目負(fù)責(zé)人Isaac Z. Schlueter
“Node及Node.js生態(tài)系統(tǒng)的權(quán)威指南。”
——Kevin Baister,1KB Software Solutions公司
“書中的示例有非常強(qiáng)烈的現(xiàn)實(shí)意義(也很有趣)。”
——àlexMadurell,PolymediaSpA
“非常引人入勝……能讓你非常快速地進(jìn)入狀態(tài)?!?/p>
——Gary Ewan Park,霍尼韋爾公司
“由編寫Node.js代碼的人寫出來的寶貴資源?!?/p>
——Brian Falk,NodeLingo,GoChime