Deno VS Node:Javascript开发人员更喜欢前者的五大原因

开发 前端
相较Node而言,一起看看JavaScript开发人员使用Deno体验更流畅和更现代的五大原因。

本文转载自公众号“读芯术”(ID:AI_Discovery)

为了解决Node的许多缺点,NodeJS的开发者 Ryan Dahl,发布了一个新的运行时刻。

人们最初的反应可能是:“太棒了,另一个Javascript框架?正是我需要的。”笔者也有过同样的反应。在了解其优点之后,笔者更清晰地明白了为什么说Deno正是年后端Javascript开发人员所需要的。

相较Node而言,一起看看JavaScript开发人员使用Deno体验更流畅和更现代的五大原因。

[[331286]]

1.Modern Javascript —ES 模块

Deno VS Node:Javascript开发人员更喜欢前者的五大原因

如果你也是个React开发人员,那么应该已经注意到了,在使用NodeJS时导入包的语法是不同的。这是因为Node是在2009年开发的,从那时起,针对Javascript进行了很多更新和改进。

在React(和Deno)中,使用现代的import package from 'package'语句,而在Node中,使用const package = require("package")语句。

ES模块导入的优越性源于两个方面:

  • 通过import,可以有选择地仅从包中加载所需的片段,这样可以节省内存。
  • 加载与require同步,而import异步加载模块,这提高了性能。

2. 顶级await —在异步函数之外使用 await

Deno VS Node:Javascript开发人员更喜欢前者的五大原因

在Node中,await关键字只能在异步函数中访问。但是在Deno中,不论在何地,面对什么对象,都可以使用await,而无需将其打包为异步函数。

几乎所有的Javascript应用程序都包含许多异步函数。这次升级使代码更加干净和简单。

3. 分散式包

[[331287]]

图源:unsplash

有了Deno,就不必依赖于NPM。我们不再需要package.json了,每个包都是从URL上加载的。

在NodeJS中,要使用包,就必须先从NPM安装:

  1. npm i moment 

等待安装,然后将其包含在应用程序中:

  1. const moment = require("moment") 

此外,不论何时,如果有人想在本地运行NodeJS 库,就必须得从NPM安装所有依赖项。在Deno中,包是从URL中导入的,所以如果想要使用moment,只需导入网址:

https://deno.land/x/moment/moment.ts.

Deno VS Node:Javascript开发人员更喜欢前者的五大原因

在包的方面,Deno另一个巨大的优势,在于每个包在安装后都缓存在硬盘上,这意味着一个包的安装只发生一次。如果要在任何位置再次导入依赖项,则无需再次下载。

4. TypeScript在本机工作,无需配置。

Deno VS Node:Javascript开发人员更喜欢前者的五大原因

让TypeScript与NodeJS一起工作需要多个步骤。读者必须安装typescript,升级package.json和tsconfig.json,并确保模块支持@types。

在Deno中,所有需要做的就是将文件后缀保存为.ts而不是.js,TypeScript编译器已经内置。

5. 访问浏览器API (Window, Fetch)

要在Javascript中发出HTTP请求,可以使用Fetch API。在NodeJS中,没有访问浏览器API的权限,因此不能本地调用fetch函数。必须首先安装包:

  1. npm i node-fetch 

然后导入包:

  1. const fetch =require("node-fetch") 

只有这样才能调用fetch函数。

而本地Deno就有权访问对象,这意味着读者可以无需安装任何库,直接调用fetch("https://something.com"),以及浏览器API中的任何内容。当与顶层await优势结合,你可以看出,Deno代码比Node代码简洁了多少:

Deno VS Node:Javascript开发人员更喜欢前者的五大原因

2020年编写Javascript代码的方式

不止于此,Deno还有很多其他的优点,比如在默认情况下更安全,可以执行Wasm二进制文件,有许多内置库,等等。

[[331289]]

图源:unsplash

文中所提到的要点都是互相关联的,共同组成了一个更为现代的2020后端JavaScript运行时刻。作为一个React开发人员,笔者更偏爱Deno。

现在,笔者可以使用import语句,不论何处都可以使用 await,无需任何配置就可以使用TypeScript,甚至无需安装包就可以调用fetch。一切都很简单。

另一个问题是,Deno最终会取代Node吗?或许吧,但可能需要几年时间。NodeJS生态系统很庞大,Deno需要时间来赶上。但趋势就是Deno正变得更受欢迎,如果你正要开始一个新项目,不妨试试它。

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-06-15 08:29:14

JavaScript开发技术

2021-04-18 18:12:07

Linux开发操作系统

2022-09-12 15:51:38

JavaScrip开发编程语言

2023-04-20 15:01:01

光纤铜缆

2010-10-27 09:33:18

MVC开发

2012-06-13 01:37:40

JSPJava

2023-01-11 12:14:50

NeoVimVim开发

2015-03-11 09:55:12

2022-04-30 08:58:00

SpringJava开发

2021-03-16 06:40:43

开源工具开源Node.js

2012-12-14 08:55:45

开发人员产品经理

2013-01-10 10:30:36

云开发

2020-12-25 12:27:56

WebBrackets文本编辑器

2022-03-03 23:30:27

TypeScrip开发前端

2019-07-19 11:27:42

Java程序员技术

2013-07-03 09:54:54

Android苹果市场份额

2021-02-16 16:44:40

RustJavaScript开发

2011-09-21 09:40:57

软件项目

2013-01-04 15:36:06

Linux操作系统

2021-01-30 10:51:07

Python编程语言开发
点赞
收藏

51CTO技术栈公众号