1.Node是个什么东西
在了解之前新看一下作者(Ryan Dahl)长什么样子吧,就只是看看,“废话,我还能干嘛!”
其实他长什么样我觉得还是不重要,反正我又不拜他
官方对Node的解释是这样的
这是对Node一个大的解释,对于Node到底是个什么东西肯定是不知道的!
这里有个问题“在开发人员能力相同的情况下编程语言的能力取决于什么?”
答1:“取决于语言本身的能力!”
解释1:“其实我们会发现不管什么语言,其实语言本身就只提供了定义变量、定义函数、定义类、流程控制,循环结构等一系列东西!”
而我则认为“语言的能力取决于这个语言所运行的平台”
1. Java运行在Java虚拟机(跨操作系统)
2. PHP既是语言也是平台(跨操作系统)
3. C#语言平台:.NET Framework(Windows)
如果说这些语言脱离了所在的平台,也干不了对什么系统文件的操作之类的事了。
那再浏览器中执行的javascript的平台也就是浏览器了,所以才有了一系列的DOM和BOM的操作
Node出现之前,javascript也只能在浏览器端运行,不能操作系统文件,因为当时没有一个平台供javascript操作系统文件,所以说Node不是javascript的产物,而是Node平台选择了javascript
这里的运行环境其实有两层意思
- 首先,JavaScript 语言通过 Node 在服务器运行,在这个意义上,Node 有点像 JavaScript 虚拟机
- Node 提供大量工具库,使得 JavaScript 语言与操作系统互动(比如读写文件、新建子进程),在这个意义上, Node 又是 JavaScript 的工具库。
2. 为什么Node要选择javascript
先来看一张Github上的统计图
这个图肯定是有点虚夸的意思,但是不得不承认javascript在近几年的用户量的确犹如滔滔江水呀,有那么大一个用户群,也促使Node得以迅速发展
据 Node.js 创始人 Ryan Dahl 回忆,他最初希望采用 Ruby,但是 Ruby 的虚拟机效率不行;