前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Node起源及名称由来

Node起源及名称由来

作者头像
一个正经的程序员
发布2022-04-11 09:00:58
6150
发布2022-04-11 09:00:58
举报
文章被收录于专栏:一个正经的程序员

简介

在Node的官网 (http://nodejs.org)之外,Node有很多Nodejs、NodeJS、Node.js。当听到这些词汇时,应该意识到,它们其实是一回事。Node名字的由来,其实跟它的起源有密切关系的。

为什么是JavaScript

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的开发成本太高,可以预见不会有太多的开发者能将它用于日常的业务开发,所以舍弃它;又觉得自己还不足够玩转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的实现原因。

为什么叫Node

起初,Ryan Dahl称他的项目为web.js,就是一个web服务器,但是项目的发展超过他最初单纯开发一个Web服务器的想法,变成了构建一个网络应用的基础框架,这样可以在它的基础上构建出更多的东西出来,诸如服务器、客户端、命令行工具等。Node发展为一个强制不共享任何资源的单线程、单进程系统,包括十分适宜网络的库,为构建大型分布式应用程序提供基础设施,其目的也是成为一个构建快速、可伸缩的网络应用程序。它自身非常简单,通过通信协议来组织许多Node,非常容易通过扩展来达成构建大型网络应用的目的。每一个Node进程都构成这个网络应用中的节点,这是它名字所含意义的真谛。

本文参考:简书【游泳的石头】https://www.jianshu.com/p/b703b0436357

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一个正经的程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 为什么是JavaScript
  • 为什么叫Node
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档