您现在的位置是:亿华云 > 人工智能
JavaScript 如何打败众语言,成为 Node 的实现语言?
亿华云2025-10-09 09:06:23【人工智能】2人已围观
简介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 服务器,以达到更高的败众性能,云南idc服务商提供 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 的实现语言。亿华云计算
很赞哦!(28776)
相关文章
- 公司名字不但要与其经营理念、活动识别相统一,还要能反映公司理念,服务宗旨、商品形象,从而才能使人看到或听到公司的名称就能产生愉快的联想,对商店产生好感。这样有助于公司树立良好的形象。
- 二级域名不被收录怎么办?如何解决二级域名不被收录?
- 国际大佬是怎么进行顶级域名投资的?有什么技巧?
- 现如今的域名为何如此重要?域名的使用出自什么原因?
- tk域名是什么域名?新手对tk域名有什么看法?
- 三级域名与一级、二级有什么区别?新手选择哪一级比较好?
- 域名空间服务器购买要了解什么?新手须知域名空间服务器
- 企业邮箱域名怎么样?企业邮箱域名有什么好处?
- 解析之后一般在十分钟内生效,如果没有生效可以联系域名服务商进行沟通。
- 新手认知中的pw域名是怎样的?大家怎么看待pw域名?