多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
Ryan Dahl是一名资深C/C++程序员,在创造出Node之前,他的主要工作都是围绕高性能Web服务器进行的。经历过一些尝试和失败之后,他找到了设计高性能Web服务器的几个要点:事件驱动、非阻塞 I/O 。 所以他最初目标是写一个基于事件驱动、非阻塞 I/O 的Web服务器,以达到更高性能,提供Apache等服务器之外的选择。 写作Node的时候,Ryan Dahl评估过 C,Lua,Haskell、Ruby等语言作为备选,结论为:C的开发门槛高;自己不足以玩转 Haskell;Lua 自身包含太多阻塞 I/O 库,难以改变人们习惯;而Ruby则是虚拟机性能低。 相比之下,JavaScript比 C的开发门槛要低,比Lua的历史包袱少。尽管服务器端JavaScript已存在多年,但作为后端部分一直没有市场,可以说历史包袱为零,为其导入非阻塞 I/O 没有额外阻力。另外,JavaScript在浏览器中有广泛的事件驱动方面的应用,暗合了Ryan Dahl喜好基于事件驱动的需求。当时,Chrome浏览器的JavaScript引擎V8也摘得性能第一的桂冠,而其基于新BSD许可证发布,受到Ryan Dahl的欢迎。所以,JavaScript成了Node的实现语言。