前言
国内Node的开发者很多都读过朴灵写的《深入浅出Node.js》(以下简称《深入浅出》)一书,笔者也不例外,笔者在2014年初第一次接触Node,最初读的几本书就包含了这本《深入浅出》 ,该书出版于2013年12月,距今已经差不多有4年的时间了。
对于一门高速发展的语言来说,4年算得上很长的时间了。4年前Node的版本号还在0.10.x,而时至今日,已经迎来v8.0.0的最新版本了。
Node项目始于2009年,2013年恰好处在当今(2017年)和2009年的中间节点,一门语言在诞生之初的发展总是最快的,到了现在,Node逐渐地变得稳定下来。
但即使这样,这4年中也发生了不少大事件:Node从分裂又走向了统一,ES2015标准的推出等。
那么4年后的今天,Node有了哪些改变呢?
一方面,基本的概念几乎没有改变,底层的libuv和事件循环还是原来的样子,主要模块的API也没什么大的变化。
另一方面,变动最多的大概是语法了,ECMAScript沉寂数年之后,终于推出了重量级的新版本ES2015,并且计划每年发布一个新版本。
换个角度来说,如果现在有一份使用Node最新版本写的代码,拿给还在使用0.10的开发者看,最大可能是对里面各种奇怪的关键字和语法感到疑惑。这本身就说明了Node发生了如此大的变动。
在笔者看来,Node的发展进入了平台期,这意味着在一段时间内,Node将维持现有的模样,或许会增加或修改一些语法,底层的V8也可能做一些大幅度的改进,但代码的基本结构不会有大的变动。
Node的发展大致分为几个阶段:
- 第一个阶段:从诞生到分裂,大致5年的时间。
- 第二个阶段:从与io.js合并到ES2015标准正式落地,只有不到半年的时间。
- 第三个阶段:从v6.0.0全面支持ES2015至今,Node较大的更新都是围绕着新的ECMA201x标准展开的。
所有的新与旧都是相对的,虽然在目前来看,本书记述的内容还算是比较新的,无论是ES201x的使用,还是Koa2框架的介绍,都属于同类书中较少涉及的领域,但要是再过几年的时间,本书的内容也会变得过时。