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

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

既然这么受欢迎,那么有人要问了:为什么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没有成功?

图源: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抢占的市场份额。

启示是什么?

图源:unsplash

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

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

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

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

留言点赞关注

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

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

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

  1. 跟李宁老师做项目:小程序版网上商城(Node.js + Express + MySQL)-李宁-专题视频课程...

    跟李宁老师做项目:小程序版网上商城(Node.js + Express + MySQL)-8799人已学习 课程介绍         本课程采用的技术包括小程序开发.Node.js.Express和M ...

  2. Deno 会取代 Node.js 吗?

    [CSDN 编者按]几天前,Node 之父 Ryan Dahl 及 Deno 团队为我们正式带来了 Deno 1.0,据官方介绍,这是一个 JavaScript/TypeScript 运行时,使用 V ...

  3. 英巴卡迪诺_什么是迪诺? 并能实际取代Node.js吗?

    英巴卡迪诺 Deno是一个热门的新运行时,可以替换Node.js. 每个人都在谈论它,因为这是下一件大事. 可能是. 这就是为什么. 什么是迪诺? 从手册中: Deno是JavaScript / Ty ...

  4. 要取代 Node.js 的 Deno 还活着吗?

    作者 | Fernando Doglio 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 早在 2020 年 5 月,我就写了一篇介绍 Deno 的文章,后来还写了一本书.我喜欢 Den ...

  5. 这本关于Node.js的书,是一本神书,助你学会Node.js,为你升职加薪,走上人生巅峰

    1 什么是Node.js? 有人说Node.js是前端,有人说Node.js是后端,也有人说我不会Node.js.在从Google 的 V8 引擎发布以来,Node.js自出现以来,靠着单线程,高并发 ...

  6. JS逆向--PyExecJS基本用法--网易云音乐逆向思路,node.js安装教程,逆向思路,逆向分析,加密机制,RSA,AES加密算法,加密算法啊破解,js引擎,定位数据包,分析栈结构,无痕窗口

    文章目录 前言 一.JS逆向以及PyExecJS模块介绍 1.JS逆向 2.PyEecJS 二.使用步骤 1.环境安装 安装PyExecJS模块 安装node.js开发环境(官网链接 https:// ...

  7. js去掉第一个换行符_通过异步迭代简化Node.js流程

    如果我们使用异步迭代,那么使用Node.js流程将更加高效. 异步迭代和异步生成器 异步迭代是用于异步检索数据容器内容的协议,这也意味着当前"任务"可以在检索项目之前被暂停. 异步 ...

  8. 修改js版本_啥都学点之使用nvm安装Node.js并实现Node.js多版本管理

    刚开始使用Node.js的时候,直接到官网下载安装 中文站点:https://nodejs.org/zh-cn/ Node.js网站截图 当接触的项目多以后,会出现一个问题,2个项目,使用的是不同的N ...

  9. php nodejs 慢多少,node.js,_nodejs前端频繁post 导致很卡的问题,node.js - phpStudy

    nodejs前端频繁post 导致很卡的问题 前端js,post过去,频繁的点击,就很卡. 这是nodejs的代码: var express = require('express'); var bod ...

最新文章

  1. Java程序员的春天!springdocker部署
  2. 中国航发9名劳模工匠变身“高级制造工程师”
  3. linux的yum详解,Linux之YUM 详解
  4. 服务器漏洞文件被删除漏洞,【华中科技大学 - 漏洞预警】Wordpress = 4.9.6 任意文件删除漏洞...
  5. html圆形空心选择按钮,CSS3 简单的实心/空心按钮
  6. Android找工作系列之事件传递机制
  7. 二进制“==”: 没有找到接受“Point”类型的左操作数的运算符(或没有可接受的转换)
  8. linux+qt经典教程+pdf下载,Qt入门教程 详细讲解版.pdf
  9. html代码雨特效代码,html开发数字雨特效代码 - 贪吃蛇学院-专业IT技术平台
  10. elementui自定义手机号邮箱验证
  11. 数电实验Verilog-数字钟
  12. Azure NSG(安全组)
  13. UCI机器学习数据库使用说明
  14. 分享 | NB-IoT智能井盖传感器
  15. T100——q查询,子母查询(汇总——明细)练习笔记
  16. 【idm】idm突破cookie封锁 (解决http:1.1 403 forbidden)(附charles使用教程)
  17. 【实战案例】python进行自动网上考试
  18. 基于安卓的电子书阅读器
  19. 白盒测试案例分析(在十个球中找一个假球),并在Junit下进行测试
  20. 站长爆料:网站被勒索交换友链

热门文章

  1. th标签能包裹select吗_电影《八佰》过后,他能摘掉马思纯前男友标签了吗?
  2. 高校教师实名举报基金申报书被同事抄袭,抄袭者顺利晋升职称!
  3. 史上最成功的数学预测:用狄拉克方程推导出电子自旋
  4. 华为人均工资高达70万,但先看看华为员工的16 项标准
  5. 77岁“核弹老人”,前后半生都令人动容!
  6. 众咖齐聚!2018智能汽车跨界融合高峰论坛开幕在即
  7. mysql count 优化索引_如何通过使用索引在InnoDB上优化COUNT(*)性能
  8. 教你如何使用hexo以及nginx、github搭建属于自己的博客(操心的妈妈级教学)
  9. 查询linux服务器事物传输失败日志,查看fail2ban日志代替lastb查看登录失败记录
  10. Hbase RegionServer 启动失败 Time difference of xxx ms max allowed of 30000ms