Farewell Deno?
今天刷到 Deno 被收购的消息。
刚看到标题时还挺高兴,感觉这下 Deno 终于有了靠山,可以期待更加美好的未来。
结果是坏消息,Deno 将只剩下一年的维护期,之后会怎么样无可奉告。
基本就是原始团队放弃继续开发。如果没有其他公司或者组织接手,那 Deno 就和它的 logo 腕龙的命运一样了。
感叹一下~记得当初 Deno 刚问世时,从一个 Node 开发者角度看近乎理想:All-in-One 工具链 + TypeScript + Web 标准(终于可以在服务器端用 fetch 了!)。可惜理想丰满现实骨感:在生态年代,裸体的运行时无法和 Node 竞争。热门产品不可能重写,各种库的维护者也没工夫支持一个全新环境。
于是 Deno 接受现实,开始放弃初心,尝试兼容 Node。可问题是:那我为啥不直接用 Node?100% 兼容怎么也好过 99% 啊。
另一个致命问题当然是钱:Deno 毕竟是一家公司。投资拉了几轮,2.0 发布时还很是大张旗鼓的宣传了一番。
盈利模式是 Deno Deploy 云计算平台,结果,除了可以一键部署以外,和其他友商相比毫无优势(比如所谓云其实就欧美两处机房),Deno 的部署本来也很简单……
并且其他 JS 运行时也没闲着,Node 几经迭代,API 也很开始很好的支持 Web 标准,npm 也加强了安全性。TypeScript 7.0 性能大幅提升,各种 Linter 和 Formatter 也不断进步。Deno 的 All-in-One 渐渐变得『门门通,样样瘟』。我个人在使用时就 miss 某些习惯的 lint 和 format 的规则。
兼容 Node 还导致另一个问题是 API 的重叠:Deno 的专属 API 部分对应 Node 的内置 API,Deno 还额外搞了个标准库……于是某些操作,例如文件系统,有3款 API 可选,开发者都讨厌选择困难。
此外 Deno 作为一个后端环境却没有专属的数据库接口,要访问数据库必须使用 Node 的库。我猜想初衷是为了推行自己的 Deno KV,但这个产品一直也没走出 beta。
总之,Deno 本想用第一性原理,颠覆性的改掉 Node 的问题,但最终没能成功。改变策略后却发现对手们已经今非昔比。
Deno 的其他周边产品如 JSR 和 Fresh 框架,同样是亮点很多,但不足以超越竞品。
今年在裁员一轮后,新版的 Deno Deploy 终于发布,可是除了新界面和新域名以外我看不出和旧版有任何区别。
而即便有各种抱怨,我还是认可 Deno 的理念,并且颇用它做了一些项目,因此看到今天的消息,惊讶之后还是很遗憾。
希望很快能有公司或者社区大牛出来接手吧,比如某家中国公司?
而买家 Cloudflare 先前也收购了 VoidZero,坐拥一群 Rust 大神,为啥不肯接着开发呢?