社区编辑申请
注册/登录
JavaScript 如何打败众语言,成为 Node 的实现语言?
新闻 前端
Node.js 是一种将 JS 放在服务器端实现的平台,而为什么要把js放到服务器端实现,JS 最初设计是在浏览器端解释执行,后来为什么搞Node.js 把他放在服务器端执行呢?

  

Node.js 是一种将 JS 放在服务器端实现的平台,而为什么要把js放到服务器端实现,JS 最初设计是在浏览器端解释执行,后来为什么搞Node.js 把他放在服务器端执行呢?

关于这个问题,近日有网友解释道:

Node.js 的作者 Ryan Dahl 是一名资深的 C/C++ 程序员,在创造出 Node 之前,他的主要工作都是围绕高性能 Web 服务器进行的。经历过一些尝试和失败之后,他找到了设计高性能,Web 服务器的几个要点:事件驱动、非阻塞I/O

Ryan Dahl 最初的目标是写一个基于事件驱动、非阻塞 I/O的 Web 服务器,以达到更高的性能,提供 Apache 等服务器之外的选择。他提到,大多数人不设计一种更简单和更有效率的程序的主要原因是他们用到了阻塞 I/O 的库。写作 Node 的时候,Ryan Dahl 曾经评估过 C、Lua、Haskell、Ruby 等语言作为备选实现,结论为:

  • C 的开发门槛高,可以预见不会有太多的开发者能将它用于日常的业务开发,所以舍弃它;

  • Ryan Dahl 觉得自己还不足够玩转Haskell,所以舍弃它;

  • Lua 自身已经含有很多阻塞 I/O 库,为其构建非阻塞 I/O 库也不能改变人们继续使用阻塞 I/O 库的习惯,所以也舍弃它;

  • 而 Ruby 的虚拟机由于性能不好而落选。

相比之下,JavaScript 比 C 的开发门槛要低,比Lua的历史包袱要少。尽管服务器端 JavaScript 存在已经很多年了,但是后端部分一直没有市场,可以说历史包袱为零,为其导入非阻塞 I/O 库没有额外阻力。

另外,JavaScript 在浏览器中有广泛的事件驱动方面的应用,暗合 Ryan Dahl 喜好基于事件驱动的需求。当时,第二次浏览器大战也渐渐分出高下,Chrome 浏览器的 JavaScript 引擎 V8 摘得性能***的桂冠,而且其基于新 BSD 许可证发布,自然受到 Ryan Dahl 的欢迎。考虑到高性能、符合事件驱动、没有历史包袱这3个主要原因,JavaScript 成为了 Node 的实现语言。

责任编辑:张燕妮 来源: 知乎
相关推荐

2019-12-10 10:23:57

Node.jsCluster前端

2016-12-15 14:13:16

Java 8Nashorn脚本

2020-09-27 07:32:18

V8

2022-05-11 09:23:08

CloudflareNode.jsJavaScript

2020-11-12 07:00:50

JavaScript前端编程语言

2022-04-26 10:11:16

开发工具JavaScript

2022-08-03 08:03:03

前端APIjavascript

2011-07-26 11:07:08

JavaScript

2016-10-18 16:45:20

2022-02-22 23:39:15

JavaScript编程语言Web

2019-03-21 09:16:44

谷歌Android开发者

2022-04-27 19:05:46

.NETJavaScript接口

2020-12-08 11:01:42

JavaScript编程语言开发

2018-01-11 16:07:01

2011-08-10 17:04:43

JavaScript

2019-04-25 11:30:49

Javascript浏览器编程语言

2016-01-21 10:58:41

Node.js开发者

2020-12-16 08:02:54

JavaScript node.js TypeScript

2019-05-27 15:30:44

Node.jsJavaScript前端

2021-12-28 20:04:23

同话题下的热门内容

谷歌数据中心炸了美国“断供EDA”,究竟怎么一回事?接口性能优化实战:从20s到500ms,三招搞定六七十岁程序员工资暴涨 就因为这门没啥人学的编程语言SQL优化这五个极简法则,直接让查询原地起飞!特斯拉全自动驾驶三次撞上儿童假人,撞后没停重新加速期待重聚丨2022 Google 谷歌开发者大会即将回归!免费DIY!微软一口气开源1500个3D表情包,超可爱

编辑推荐

斩获BAT技术专家Offer,他到底经历了什么?支付宝即将下线收款业务:2018年1月1日起正式执行,网友炸锅了!我活着从柬埔寨技术“魔窟”逃出来了…甲骨文云平台全面升级,助力客户稳步上云一文看懂Java收费 附可替换方案!
我收藏的内容
点赞
收藏

51CTO技术栈公众号