js 可以做什么东西_Deno需要做什么才能取代Node.js?

全文共1843字,预计学习时长5分钟

d6792db8fcd5d1a2f4bdefd26acc5dcf.png

Deno是一个Javascript/TypeScript的运行时,旨在取代Node.js的地位。它拥有广泛功能,讨论度非常高,在Github上有将近68000个星星:

8b2114396ed39883960603be24a607b2.png

既然这么受欢迎,那么有人要问了:为什么Deno正式版本1.0发行时没能成功呢?本文就将深入探讨这个问题。

什么是Deno

Deno是由Ryan Dahl(也是Node.js的原创者)创建的安全的JavaScript和TypeScript运行时,它的创建是为了弥补2009年首次设计Node.js时的疏忽。这种出发点很有意义,我敢肯定每个程序员都希望有机会重写他们10年前的代码。

因此,Deno在Node.js基础上新增了很多特征,以下是其中一些:

· Deno默认设定就是安全的。必须通过选择才能访问文件系统、网络或环境。

· Deno为TypeScript的延伸。

· 外部文件由URL明确引用,没有package.json。

· 导入语句包括扩展名为.ts,.tsx,.js,.json的文件。

· 内置的依赖项检查器和文件格式化工具。

凭借这些功能以及大量的开发者炒作,Deno于2020年5月正式发布了1.0版。接着……它扑街了。

为什么Deno没有成功?

fb5b93583fdafd80a3db6af5db999006.png

图源:unsplash

Deno似乎拥有致胜的所有要素。它追随者众多,功能多样扎实,创作者经验老道等等,但结果却未能达到人们的期望。这是为什么?

我认为最好从商业角度揭秘。很多人都忽略了一点:构建开源软件与为用户构建软件实在没有什么不同。基本的经济原则——供求关系,仍然发挥着重要作用。当有人创建一个新的开源项目时,他们势必要与已建立的平台竞争。鉴于此,不仅要考虑新项目的优越性,还必须与现有项目作比较。

对Deno来说,现有的是Node.js,尽管Node.js可能有所不足,但它仍能出色完成任务。如若Deno推出了Node.js无法复制的强大特征,就可能会改变游戏规则。但Deno没有。

从用户的角度来看,Deno具有的只是“次要特征”。它具有更简洁的代码库,使用了最新最佳的经验,更加安全,但是这些东西对用户来说仅是“特性”,并非产品自身。

你可以做一个像Gmail一样的电子邮件客户端,它应更加安全并提速50%,可是用户仍然不会转而使用它,即使重新创建书签用时不多,人们也觉得不值得。Deno第一击未中:它具有许多不错的特征,但是没有什么能让用户放弃Node.js的杰出之处。

Deno的另一个主要失败之处是它不支持NPM软件包。如果Deno能够支持NPM软件包,就很可能能够改变形势。Deno支持NPM软件包将使它们不再像“单独的电子邮件客户端”,更像是对当前客户端的更好包装。支持NPM软件包将大大降低进入壁垒。这将为用户把项目和库迁移至Deno提供一个良好的铺垫。

这类似于TypeScript的“严格模式”。对于具有JavaScript强大代码库的用户,直接转用TypeScript会降低你几周内梳理错误消息的效率。

由于TypeScript可以取消严格模式,于是它可以为用户完全转向使用TypeScript做铺垫。这使它们的进入门槛大幅降低,又助力TypeScript争得近年来JavaScript抢占的市场份额。

启示是什么?

f2297051ea4e59296f3b78e46db38c3f.png

图源:unsplash

笔者认为这是一个有趣的案例,例证了更多的商业方法。给我们带来的启示就是,如果你要发布新产品,请务必确保它具有强大的优点,能够克服人们拒绝转变现状的阻力。

Deno具有魅力,但归根到底,只是多了一系列的小“修复”,代价却是失去了Node.js培育的整个NPM生态系统(也曾助它们壮大)。

那么,Deno接下来何去何从?首先他们得做出决定。要么努力增加Node.js库的向后兼容性,要么提供更多好处来诱使用户转换平台。笔者认为更应拓展向后兼容,此后将极大改善项目的未来。

无论如何,祝Deno团队好运,愿好技术长存。

34356062d276d0c50cf5889341206769.png

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

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

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

相关文章

37 手游基于 Flink CDC + Hudi 湖仓一体方案实践

简介: 介绍了 37 手游为何选择 Flink 作为计算引擎,并如何基于 Flink CDC Hudi 构建新的湖仓一体方案。 本文作者是 37 手游大数据开发徐润柏,介绍了 37 手游为何选择 Flink 作为计算引擎,并如何基于 Flink CDC Hudi 构建新的湖…

手把手搭建一个容器化+代理网关+可视化管理环境

作者 | togettoyou来源 | SuperGopher前言本文主要分享个人服务器的应用部署方案现状,容器化代理网关可视化管理。准备阶段我购买的是腾讯云服务器(2 核 4GB 3Mbps)域名也是在腾讯云备案过的,提前准备域名解析配置环境安装 Docker…

漫画 | 一口气搞懂 Serverless !

简介: 第二届云原生编程挑战赛为热爱技术的年轻人提供一个挑战世界级技术问题的舞台,希望用技术为全社会创造更大价值。 作者 | 刘欣 呃,我可能是别人眼中所说的不用奋斗的一代。 大家喜欢听的什么多姿多彩的生活,我都经历过一…

OpenKruise v0.10.0 新特性 WorkloadSpread 解读

简介: 针对需求,OpenKruise 在 v0.10.0 版本中新增了 WorkloadSpread 特性。目前它支持配合 Deployment、ReplicaSet、CloneSet 这些 workload,来管理它们下属 Pod 的分区部署与弹性伸缩。下文会深入介绍 WorkloadSpread 的应用场景和实现原理…

CSS 状态管理,玩出花样了!

作者 | 零一来源 | 前端印象CSS用于交互的方式无非就那么几种:伪类::hover、:link、:active ...动画:animation过渡动画:transition这些交互方式组合起来,真的可以玩出一些花样,例如我们本文的主题&#xf…

告别Kafka Stream,让轻量级流处理更加简单

简介: 还在花精力去选型Kafka组件去做清洗转化?来试试Kafka ETL任务功能! 一说到数据孤岛,所有技术人都不陌生。在 IT 发展过程中,企业不可避免地搭建了各种业务系统,这些系统独立运行且所产生的数据彼此独…

元宇宙“性骚扰”现象频出,Meta推出“个人结界”能保护好女玩家吗?

作者 | 小码君来源 | 抓码青年元宇宙,可以说是最近最炙手可热的概念了。各大厂纷纷入局元宇宙,Faceebook甚至将总公司名字都改名为Meta。不过盯上元宇宙的可不止资本大鳄,还有一些不怀好意的色狼。据外媒报道称,在Meta的Oculus设备…

【CDS技术揭秘系列 01】阿里云CDS-OSS容灾大揭秘

简介: 本文主要阐述 CDS 产品中 OSS 服务在容灾方面的部署形态以及实现的其本原理。 容灾功能可以保证用户一份数据在多个地方存在冗余备份,当某个机房出现极端异常(比如物理损毁)情况下,数据也不会出现丢失&#xff1…

如何促合作共赢?技术人的一点经验分享

简介: 本文作者将通过与詹韦团队一起合作的《树懒平台》,分享在工作过程中,我们什么情况下会有合作诉求?有了合作诉求之后,如何寻找对的人?锁定候选人之后,如何打动对方促成合作?合作…

不记得 Git 命令? 懒人版 Git 值得拥有!

作者 | Eason来源 | 程序员巴士Git的强大是所有开发者都心知肚明的事情,但是其多样的命令令人很是难受。不过在Github上有着这么一个开源项目lazygit[1]。Lazygit是由Jesseduffield开发并维护的项目,其代码托管在Github。通过使用Lazygit,我们…

Dubbo3.0|阿里巴巴服务框架三位一体的选择与实践

简介: 服务框架就像铁路的铁轨一样,是互通的基础,只有解决了服务框架的互通,才有可能完成更高层的业务互通,所以用相同的标准统一,合二为一并共建新一代的服务框架是必然趋势。Dubbo3.0 是 Dubbo2.0 与 HSF…

全球首款乘云而来的存储产品CDS诞生!

9月22日,阿里云发布全球首款“云定义存储”(Cloud Defined Storage,CDS)产品。作为一款本地部署的分布式存储产品,阿里云CDS拥有与公共云存储相同的技术架构,让企业客户在本地也能部署和使用与公共云一致的…

性能提升3倍、时延降低70%,阿里云企业级存储ESSD云盘再升级!

9月22日,阿里云存储年度新品发布会上,阿里云基础产品资深产品总监陈起鲲发布了其全球领先的旗舰级块存储产品ESSD的两款新规格(ESSD Auto PL、ESSD PL-X),并宣布了新增的多项企业级能力。 据了解,ESSD是阿…

一图看懂,什么是“云定义存储”

世界的诞生是从盘古开天辟地开始 而数据的存储 则由在龟甲上刻下的第一个字开始 经过数千年发展 数据存储也从最初的 龟壳、竹简等材料逐步进化到磁带、硬盘甚至云上 在之前几千年里 人们对于数据存储的需求并没那么高 仅仅通过纸张就能将所有数据记录下来 随着第一台计算机面…

Android 13 第一个开发者版本来了,网友直呼:Android 12 还没玩透!

整理 | 苏宓出品 | CSDN(ID:CSDNnews)2 月 10 日,Google 宣布 Android 13 首个预览版面向开发者开放,此版本重点聚焦隐私和安全、提供开发者生产力、应用兼容性,并保持与 OpenJDK 11 更新一致、提供主题图标…

「技术人生」第6篇:技术同学应该如何理解业务?

简介: 本文以大量理论论述解析业务,并提供多种基于不同场景的实操方法,帮助技术同学以科学、合理的方式开展日常工作、指导团队开展业务建设,保障顶层设计的落地执行。 一. 背景 目前已经发布《技术一号位的方法论》系列文章其实…

参数设置_变频器基本参数设置

工业设备的使用如何达到最大效能以及最佳效果,需要使用人员充分了解设备性能以及工艺要求,所以变频器参数设置或者优化是非常重要的环节,古人云失之毫厘差之千里就是这个道理。一、变频器基本参数设置参数设置可以是手持编程器操作&#xff0…

Morphling:云原生部署 AI , 如何把降本做到极致?

简介: Morphling 本意是游戏 Dota 中的英雄“水人”,他可以根据环境要求,通过灵活改变自身形态,优化战斗表现。我们希望通过 Morphling 项目,实现针对机器学习推理作业的灵活、智能的部署配置改变,优化服务…

datax参数设置_DataX Web数据增量同步配置说明

一、根据日期进行增量数据抽取1.页面任务配置打开菜单任务管理页面,选择添加任务按下图中5个步骤进行配置1.任务类型选DataX任务2.辅助参数选择时间自增3.增量开始时间选择,即sql中查询时间的开始时间,用户使用此选项方便第一次的全量同步。第…

Node18 即将支持 import HTTP资源!

作者 | 零一来源 | 前端印象最近看到Node官方提交了一条commit ,并且已经合入 master分支 ,如下图所示:node master commit由此可见,Node18可能会支持一个非常 nice 的功能,那就是 支持 import 远程HTTPS资源和本地的H…