本文转载自公众号《核心阅读》(ID:AI_Discovery)。Deno是一个Javascript/TypeScript运行时,旨在取代Node.js。它功能广泛,讨论度很高,在Github上有近68,000颗星:既然这么受欢迎,有人要问了:为什么Deno的1.0正式版没有成功?本文将深入探讨这个问题。什么是德诺?Deno是一个安全的JavaScript和TypeScript运行时,由RyanDahl(也是Node.js的最初创建者)创建,以弥补2009年首次设计Node.js时的疏忽。这个起点很有意义,我相信每个程序员都会喜欢重写10年前的代码的机会。因此,Deno在Node.js的基础上增加了许多新特性,以下是其中的一些特性:Deno默认设置为安全的。必须选择对文件系统、网络或环境的访问。Deno是TypeScript的扩展。外部文件通过URL显式引用,没有package.json。import语句包括扩展名为.ts、.tsx、.js、.json的文件。内置依赖性检查器和文件格式化工具。凭借这些功能和大量开发人员的炒作,Deno于2020年5月正式发布了1.0版。然后……它就走红了。为什么Deno没有成功?资料来源:unsplashDeno似乎具备成功的所有要素。它有大量的追随者、可靠的功能、经验丰富的创作者等等,但它没有达到预期。为什么是这样?我认为最好从商业角度揭开它的神秘面纱。许多人想念的是,构建开源软件实际上与为用户构建软件没有什么不同。基本经济原理——供求关系——仍然发挥着重要作用。当有人创建一个新的开源项目时,他们必然会与已建立的平台竞争。鉴于此,不仅要考虑新项目的优越性,还要与现有项目进行比较。对于Deno,这就是Node.js,虽然可能缺少Node.js,但它仍然可以完成工作。如果Deno引入了Node.js无法复制的强大功能,它可能会改变游戏规则。但德诺没有。从用户的角度来看,Deno只有“次要功能”。它有更干净的代码库,使用最新和最佳实践,并且更安全,但这些东西对用户来说只是“功能”,而不是产品本身。你可以制作一个像Gmail这样的电子邮件客户端,它应该更安全,速度提高50%,但用户仍然不会切换到它,即使重新创建书签不会花费太多时间,人们也认为不值得。Deno错过了第一次成功:它有很多不错的特性,但没有什么能让用户放弃Node.js的伟大之处。Deno的另一个主要失败是它不支持NPM包。如果Deno能够支持N??PM包,它可能会改变这种情况。Deno对NPM包的支持将使它们感觉不像是“单独的电子邮件客户端”,而更像是围绕当前客户端的更好包装器。支持NPM包将大大降低进入门槛。这将为用户将项目和库迁移到Deno提供良好的基础。这类似于TypeScript的“严格模式”。对于拥有强大JavaScript代码基础的用户,直接切换到TypeScript会降低你数周来梳理错误消息的效率。由于TypeScript可以取消严格模式,因此可以为用户完全切换到TypeScript做铺垫。这大大降低了他们的进入门槛,帮助TypeScript赢得了JavaScript近年来抢占的市场份额。灵感是什么?来源:unsplash作者认为这是一个有趣的案例,例证了更多的商业方法。我们的要点是,如果您要推出新产品,请确保它具有强大的优点,可以克服人们对改变现状的抵制情绪。Deno有它的魅力,但最终它只是一系列小的“修复”,代价是失去了Node.js培育(并帮助成长)的整个NPM生态系统。那么,Deno下一步要去哪里?首先,他们必须做出决定。要么努力增加Node.js库的向后兼容性,要么提供更多好处来吸引用户切换平台。作者认为应该扩展向后兼容性,这将大大改善项目的未来。不管怎样,祝Deno团队好运,愿好技术万古长青。
