偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

JavaScript 如何打敗眾語(yǔ)言,成為 Node 的實(shí)現(xiàn)語(yǔ)言?

新聞 前端
Node.js 是一種將 JS 放在服務(wù)器端實(shí)現(xiàn)的平臺(tái),而為什么要把js放到服務(wù)器端實(shí)現(xiàn),JS 最初設(shè)計(jì)是在瀏覽器端解釋執(zhí)行,后來(lái)為什么搞Node.js 把他放在服務(wù)器端執(zhí)行呢?

  [[226717]]

Node.js 是一種將 JS 放在服務(wù)器端實(shí)現(xiàn)的平臺(tái),而為什么要把js放到服務(wù)器端實(shí)現(xiàn),JS 最初設(shè)計(jì)是在瀏覽器端解釋執(zhí)行,后來(lái)為什么搞Node.js 把他放在服務(wù)器端執(zhí)行呢?

關(guān)于這個(gè)問(wèn)題,近日有網(wǎng)友解釋道:

Node.js 的作者 Ryan Dahl 是一名資深的 C/C++ 程序員,在創(chuàng)造出 Node 之前,他的主要工作都是圍繞高性能 Web 服務(wù)器進(jìn)行的。經(jīng)歷過(guò)一些嘗試和失敗之后,他找到了設(shè)計(jì)高性能,Web 服務(wù)器的幾個(gè)要點(diǎn):事件驅(qū)動(dòng)、非阻塞I/O。

Ryan Dahl 最初的目標(biāo)是寫(xiě)一個(gè)基于事件驅(qū)動(dòng)、非阻塞 I/O的 Web 服務(wù)器,以達(dá)到更高的性能,提供 Apache 等服務(wù)器之外的選擇。他提到,大多數(shù)人不設(shè)計(jì)一種更簡(jiǎn)單和更有效率的程序的主要原因是他們用到了阻塞 I/O 的庫(kù)。寫(xiě)作 Node 的時(shí)候,Ryan Dahl 曾經(jīng)評(píng)估過(guò) C、Lua、Haskell、Ruby 等語(yǔ)言作為備選實(shí)現(xiàn),結(jié)論為:

  • C 的開(kāi)發(fā)門(mén)檻高,可以預(yù)見(jiàn)不會(huì)有太多的開(kāi)發(fā)者能將它用于日常的業(yè)務(wù)開(kāi)發(fā),所以舍棄它;

  • Ryan Dahl 覺(jué)得自己還不足夠玩轉(zhuǎn)Haskell,所以舍棄它;

  • Lua 自身已經(jīng)含有很多阻塞 I/O 庫(kù),為其構(gòu)建非阻塞 I/O 庫(kù)也不能改變?nèi)藗兝^續(xù)使用阻塞 I/O 庫(kù)的習(xí)慣,所以也舍棄它;

  • 而 Ruby 的虛擬機(jī)由于性能不好而落選。

相比之下,JavaScript 比 C 的開(kāi)發(fā)門(mén)檻要低,比Lua的歷史包袱要少。盡管服務(wù)器端 JavaScript 存在已經(jīng)很多年了,但是后端部分一直沒(méi)有市場(chǎng),可以說(shuō)歷史包袱為零,為其導(dǎo)入非阻塞 I/O 庫(kù)沒(méi)有額外阻力。

另外,JavaScript 在瀏覽器中有廣泛的事件驅(qū)動(dòng)方面的應(yīng)用,暗合 Ryan Dahl 喜好基于事件驅(qū)動(dòng)的需求。當(dāng)時(shí),第二次瀏覽器大戰(zhàn)也漸漸分出高下,Chrome 瀏覽器的 JavaScript 引擎 V8 摘得性能***的桂冠,而且其基于新 BSD 許可證發(fā)布,自然受到 Ryan Dahl 的歡迎??紤]到高性能、符合事件驅(qū)動(dòng)、沒(méi)有歷史包袱這3個(gè)主要原因,JavaScript 成為了 Node 的實(shí)現(xiàn)語(yǔ)言。

責(zé)任編輯:張燕妮 來(lái)源: 知乎
相關(guān)推薦

2011-11-07 15:05:54

程序語(yǔ)言StackOverflObjective-C

2012-09-17 09:47:49

語(yǔ)言排行JavaScriptRedMonk

2020-11-12 07:00:50

JavaScript前端編程語(yǔ)言

2016-11-24 17:21:30

2011-12-30 10:21:10

JavaScript

2010-03-11 19:16:32

Python語(yǔ)言

2011-10-13 10:07:26

Dart

2013-03-26 10:27:01

JavaScriptjson

2011-11-02 09:04:15

Node.js

2019-11-19 16:07:24

Java編程語(yǔ)言JavaScript

2022-10-21 09:01:41

StudentC++類(lèi)型

2020-03-17 10:24:12

Go語(yǔ)言停止寫(xiě)障礙

2018-11-21 09:33:01

2021-11-19 11:36:42

語(yǔ)言string字符串

2020-10-23 06:56:00

C語(yǔ)言動(dòng)態(tài)字符串

2018-03-11 08:30:32

Swift 編程語(yǔ)言C語(yǔ)言

2009-01-15 13:26:14

PHPWeb開(kāi)發(fā)ASP.NET

2018-01-19 09:21:32

語(yǔ)言Python高收入國(guó)家

2009-09-02 17:56:31

ScalaWeb 2.0

2015-06-10 10:43:07

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)