node 更新_被创造者嫌弃,Node.js 如何应对来自 Deno 的挑战

(给前端大全加星标,提升前端技能)

转自:OSC开源社区

JavaScript 运行时 Node.js 于日前更新到了 15 版本,该软件自发布至今已走过了 11 年的岁月。但在今年 5  月,其竞争对手 Deno 也发布了 1.0 版本。Deno 是一个 Javascript/TypeScript 的运行时,由 Node.js 之父 Ryan Dahl 开发,是专门为了修复 Dahl 认为的 Node.js 的关键弱点而创建的--包括安全问题、使用集中式仓库系统(npm)以及"繁琐的工具"。

目前,Deno 在 Github 上已有 68.7k 个 star,且还在持续增长中。Node.js 目前在 Github 上的 star 数则为 74.5k。

8c4bd535b2f52b1490f81473e8f42efa.png

e6b438409d0762c77c71ef67799678aa.png

为了了解当前一代 Node.js 维护者是如何应对新的挑战者的,进而了解他们是如何应对 Dahl 的批评的,一位名为 Richard MacManus 的编辑采访了红帽公司的高级软件工程师、Node.js 技术指导委员会成员 Bethany Griggs。Griggs 自 2016 年以来一直参与 Node.js 项目,主要工作于 Node.js Release Working Group。

Griggs 在采访中表示,Node.js 仍然是构建云原生微服务和后端应用程序的主要运行时之一。并补充称,Node.js 在 IoT 项目中也很流行,其中她最喜欢的一例应用就是 — NASA 使用 Node.js 来监视 space suit 数据。

对此,Richard 则认为,除了 space suit 之外,Node.js 已不再被视为 JavaScript 开发的热门新事物。相比较而言,前端 React 框架 Next.js,可能要更占据上风。且与 Deno 的一些先进特性(例如,Deno 是用流行的新编程语言 Rust 编写)相比,Node.js 项目如今更遵循相对保守的发展道路。Richard 称,因此,Node.js 15 是一个增量升级也就不足为奇了。

另一方面,Griggs 还指出 15 版中有一重要更新内容是,将未处理的拒绝改为了throw模式。并表示,这意味着开发人员现在可以获得“早期反馈,即他们正在忽略应用程序中的错误处理”。Richard 认为,不可否认这是一次有价值的技术更新,但他认为这更新不太可能在技术圈引起多大的关注和讨论。

回应 Ryan Dahl 的批评

在几年前,Dahl 曾做了一个演讲,讲述了他创建 Node.js 后的遗憾。指出一个主要的问题是,他没有把运行时做到尽可能的安全。之后,他则在创建 Deno 时解决了这一问题,Deno 也被宣传为 "默认安全"。

Richard 表明,他更好奇的是,Node.js 项目组是否进行了新的开发、或者修复,以解决 Ryan Dahl 在过去几年中提出的一些问题?

fdfa06a9e94917e2b8bee9ed80ac9b10.png

而 Griggs 则较为官方地回答了 Richard 的这一问题表示,Node.js 将从 Deno 中“汲取灵感”。不过她也指出,其实早在 Deno 诞生之前,Node.js 就已经有了围绕安全执行和限制 API 访问的讨论历史。并列出了几个与安全性有关的“实验性功能”(示例1,示例2)。

此外,Griggs 也表示,她并不认为 Deno 的安全优先的访问方式适合 Node.js。"对于实际应用来说,你很快就得妥协到授予对许多 API 的访问权,所以净价值与复杂性的关系会很低。"

她还透露,虽然 Node.js 项目团队有兴趣尝试更强的安全功能,但目前还没有一个充分的理由来驱使他们做出采用与 Deno 相同策略的决定。

至于 Dahl 批评 npm 是一个封闭的模块生态系统,Griggs 则认为,Node.js 没有理由在这一点上做出改变。

Griggs 还表示,Next.js 和 Gatsby 等 JavaScript 框架的流行,以及 Jamstack 及其静态网站生成方式的兴起,也并没有对 Node.js 的应用造成多大影响。Node.js 仍被大量用于构建微服务;在构成客户端 JavaScript 开发管道的工具中,Node.js 也仍然被大量使用。

最后,在未来愿景方面,Griggs 透露,在 Node.js 项目的未来十年计划中,该团队已将开发人员的经验、稳定性、操作质量,Node.js 维护者经验以及最新的技术和 API 定义为优先事项。

推荐阅读  点击标题可跳转

1、彻底搞懂 Node.js 中的 Require 机制

2、前端赋能业务:Node实现自动化部署平台

3、sync_hooks、CLS 与 Node 中异步资源生命周期监听

觉得本文对你有帮助?请分享给更多人

关注「前端大全」加星标,提升前端技能

b1b21c2921212658f8a1b9ea2a5f8623.png

点赞和在看就是最大的支持❤️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python模块及其导入

一、模块 1、模块的定义: 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少, 很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件…

L1-046 整除光棍 (20 分)

这道题的解题过程真是一波三折,也真是发现人外有人,天外有天,好多神人真是。 原题如下图,也可点击这个链接到原题自己测试光棍原题链接: 一开始做的时候的想法:so easy,虽然看到了题目中提示s可能超级大…

python内存模型_内存篇3:CPython的内存管理架构-L2-块

本篇用到了C/C的内存对齐的基础知识,我已经假定你有C/C内存管理的相关基础。我们在前一篇的流程图中留下了两个黑箱子,会涉及到内存模型第一层以上的其他话题,回顾下面关于第一层面向类型的内存API流程执行图。本篇要讨论其中一个黑箱就是何为物&#xf…

软件测试_入行

软件测试,入行太简单了。1. 看一本软件测试理论书籍 。2. 看一点数据库知识(增删改查)。3. 看一点Linux常用命令(30个够了)。4. 了解几个行业内容的测试工具(如Jira Zentao LR Jmeter Fiddler 等&#xff0…

L1-056 猜数字 (20 分)

这道题做法倒是多样化,可以使用结构体,也可以使用多个数组做,不过为了复习一下好久没用过的结构体,我是用结构体做的。 这道题可以用来复习一下一些之前的简单的知识点,至于思路的话我相信应该都是有的。 这里就不发运…

uci数据集_数据分析找不到数据集?快来看这个盘点

前言数据集相对于机器学习而言是至关重要的,可以说好的数据集是成功的一半。但是,我们很难找到一个特定的数据集来解决各种机器学习问题,甚至是进行实验。因而找到合适的数据集是一件很难的事情,接下来我们就盘点一下一些优质的数…

git保留两个repo的commit并进行合并

以往的合并时首先要删除repo的.git文件夹,然后重新add-commit-push。带来的问题是会丢失某一个仓库的提交信息,不利于时光倒退。经过摸索终于实现了保留两个仓库提交信息的合并方法。介绍如下: 比如要将DownloadPicsBySeleniumAndPhantomJS这…

安利一款编辑神器——Markdown

经常使用word或者那些浏览器自带编辑器的你可能会和我有时候遇到一样的烦恼,调整格式可真是不容易,如果你也有同样的烦恼,不妨可以试一下Markdown,值得你拥有哈。 Markdown的使用 1.安装使用篇 a.首先安装软件,然后创…

python对图片颜色校正_使用Python PIL更改图像色调

Using Python PIL, Im trying to adjust the hue of a given image.Im not very comfortable with the jargon of graphics, so what I mean by “adjusting hue” is doing the Photoshop operation called “Hue/saturation”: this is to change the color of the image uni…

自动生成业务单据流水号方案

我们在开发管理软件的时候,常常遇到流水号(单据号、登记号)自动生成、控制和管理的问题。由于流水号具有唯一性和连续性的特点,在实际开发过程中若处理不好,会产生流水号重复及断号的问题。特别是多个并发用户同时保存一张同样的业务单据时,系统会返回多个相同的流水…

IDEA快捷键的使用成就手速之旅(要想手速变得快,快捷练习必须刚)

IDEA快捷键的使用 (持续更新) 1.必备合集 a.Ctrl CtrlF 文本代码查找神器呀简直CrtlR 文本代码替换CtrlZ 撤销(基操基操)CtrlY 删除当前行或者选中行 b.Shirt c.CtrlShirt d.Ctrlalt e.altShirt f.CtrlShirtalt 2.慢慢积…

一个项目部署多个节点会导致锁失效么_Redis分布式锁

分布式锁在很多场景中是非常有用的原语, 不同的进程必须以独占资源的方式实现资源共享就是一个典型的例子。有很多分布式锁的库和描述怎么实现分布式锁管理器(DLM)的博客,但是每个库的实现方式都不太一样,很多库的实现方式为了简单降低了可靠性&#xff…

GIT_服务器与本地环境构建

linux安装git包 很多yum源上自动安装的git版本为1.7,这里手动编译重新安装1:安装依赖包yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker2:删除已有的gityum remove git3&#xff1a…

Maven项目的基本创建步骤

先来个自己笔记的图片备忘一下,如果以后有时间再慢慢更新详细。

visualvm远程监控jvm_大型企业JVM实战:优化及面试热点分析

本次课程的笔记非常多,而且内容已经整理了好几个小时了,接着下来内容也会更多,也是大型企业JVM性能调优实战的最后一节,希望对你有帮助!04:JVM性能监控与故障处理工具 大型企业JVM性能调优实战之总结17&…

Markdown图片路径的改变方法

Markdown图片路径的改变方法 Markdown用时一时爽,路径一改火葬场 Markdown在占用内存少的优点的同时,也注定了图片的存储不会是占用内存,而是根据路径和链接链到md文件里的。 相信有不少人会像我一样在做完一个Markdown笔记后,在…

SROP

title: SROP date: 2018-02-21 19:58:12 categories: 栈溢出 tags: - CTF - PWN - 栈溢出 SROP全称为 Sigreturn Oriented Programming ,表明利用sigreturn这个函数实现ROP的技术。 参考资料 http://www.freebuf.com/articles/network/87447.htmlhttp://bobao.360.c…

python字符串的方法和列表的方法_Python学习笔记字符串操作之join()和split()方法,列表转字符串,字符串转列表...

随笔记录方便自己和同路人查阅。#------------------------------------------------我是可耻的分割线-------------------------------------------如果有一个字符串列表,需要将它们连接起来,成为一个单独的字符串,join()方法就很有用。join…

变量的比较之equals 与 == 的区别

Java的数据类型分为两种 1.基本数据类型,byte,short,char,int,long,float,double,boolean,只要使用运算符就可以了,进行比较只是简单进行比较其中的字节组合。 两个引用变量是否引用到堆上的同一个对象,也可以使用。 2.复杂的对象…

scheduledthreadpoolexecutor使用_ScheduledThreadPoolExecutor详解

本文主要分为两个部分,第一部分首先会对ScheduledThreadPoolExecutor进行简单的介绍,并且会介绍其主要API的使用方式,然后介绍了其使用时的注意点,第二部分则主要对ScheduledThreadPoolExecutor的实现细节进行介绍。1. 使用简介Sc…