Nodejs相关:Deno 已來,你來不來?

发布于 1周前 作者 h691938207 来自 nodejs/Nestjs

Nodejs相关:Deno 已來,你來不來?

「 Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.」

翻譯:Deno 是使用 V8 并内置于 Rust 的 JavaScript 和 TypeScript 的简单,现代且安全的运行时。

我們可以是站在「 Nodejs 之父」的肩膀上,開始了解和嘗試使用。

真香警告:Promise 語法 + TypeScript 支持 + ES 模塊 + ...

  • 簡介

「 deno 这个名字就是来自 Node 的字母重新组合( Node = no + de ), 表示"拆除 Node.js"( de = destroy, no = Node.js )。」

轉載自阮一峰老師的網絡日誌 http://www.ruanyifeng.com/blog/2020/01/deno-intro.html


95 回复

感觉 api 还不太稳定,印象中 readdir <=> readDir 这种反复变动好几次,估计 1.0 之后也不会冻结的


正式版 13 號才發佈,不穩定是常態,但是不妨礙我們了解和嘗鮮,個人覺得 vue3 和 Deno 有空都可以先學習了。「我來到,我看見,我征服。」,與時俱進就是王道。

跑不了 React 或者 Angular 之前是不可能火的。

我是越来越不懂前端了…折腾劲儿真大

不来,来不动

据大神说没有解决痛点 只是作者偏执的要实现自己的想法

前端真乱

来来来,学学学,更新技术栈……
看起来终于把 node 里那些烦人的东西解决了大半了……
先试试,看看能不能 duang duang duang 吧……

玩了一阵子,感觉没库可用。等各位大神丰富了生态我再来吧。

等 endo 的时候再来吧

楼上说前端圈乱的,还真就把 node.js 只当前端工具链使啊

个人感觉比 Deno 比 Node 爽多了.

底子好,再发展发展比 Node 有前途.

这楼里面的弱智言论可真多啊。 哈哈哈哈

不会有人认为 node 的依赖只能写版本号吧,不会有人认为 node 不支持 github 地址吧

不来,一样是新语言,golang/rust 不更好玩?出卖灵魂的工作语言的话,用什么都一样

当前本人会尝试使用 deno,当库 /生态成熟时,应该会用来替代 node.js 在相关的项目.

node,deno,仔细一看,以后会不会有 edon,oned … 之类的,

不来不来,用 JS-like 为什么不用 Node ?

不能使用这么多 npm 包,为什么不用其他的语言?

现在什么风气,东西好用不好用不谈,以前是造轮子,现在先造个语言再说

你说呢,一天天鼓吹后端渲染 SEO 的,现在的搜索引擎都烂掉了,谷歌被摸得透透得,国内更是$eo

以前后端搞模板渲染得时候,前端做前后端分离,等现在后端开始做接口弄前后端分离的时候,她又把渲染扔回后端了
真的是前端的嘴,骗人的鬼

持观望态度

弱弱的问一句现在还有人只用 jq 吗

我就想知道 deno 有没有 node_modules 这个恶心人的东东了

確實,原生 JS 才是王道,jQuery 天下第一。

我不來,我不是,我沒有,是他們來了,是他們先動手的。

作者確實一直很偏執,從 GO 到 Rust,還有各種性能評測,改了又改。

不来。我觉得前端目前已经足够了。

神仙打架,娛樂看官。

没啥意义,Deno 作者想干掉 node_modules,就这么简单。

你趕緊幫忙造輪子=。=

時間會給出答案。

物以類聚,人以群分,還好你比較睿智和出眾。

這不是新語言。。只是一個兼容 JS 和 TS 的運行時。

雖然說取代 node 還比較早,但嘗試使用總是沒錯的,冒險精神也是程序員的優秀品質,走出舒適圈就是進步的第一個里程碑,你的方向是正確的。

什么时候转换工具出来了我自然就支持了

前端你们是真的折腾

早起的我一脸懵逼。

说实话,宁愿他放弃支持 js,只支持 ts

慢慢来 还得等几年发展

自然選擇之前端生態進化史。。

等你们人肉测试了。。。

‘deno’ = ‘node’.split(’’).sort().join(’,’);

「 Any application that can be written in JavaScript, will eventually be written in JavaScript 」。——Jeff Atwood

翻譯:「一切可用 JS 實現的應用,最終將由 JS 或 TS 實現。」——阿特伍德定律

可能是這恐龍標誌不夠可愛,去提個 issues 。

知足常樂。


node 节点的背景跟文字对比度太高了。。。每次进来都晃瞎了。。。

沒有是沒有,但模塊和包還是要的,提供一個更多元化的運行時和更統一的生態。

不存在的。

只要你支持了 TS,JS 不也支持了嗎? TS 編譯之後就是 JS 。

作为前端,觉得早早抛弃掉 JS 以及其系列就对了

JS 不够优秀,历史包袱中,混乱,BUG 多美名其曰特性,毕竟是短时间搞出来的,本来不是这样用的。

JS 能够大行其道就是对浏览器具有垄断权

应该重点完善 Webassembly,然后让所有语言都可以接入浏览器。

浏览器未来想要成为主流平台、游戏、视频、软件 app 、AI 、科学计算等等,JS 太混乱了扛不住

让合适的工具做合适的事情吧

别折腾了

前面一堆說前端的,是確實沒有看過 Deno 的介紹啊。Deno 重點解決的是 Node 的後端問題,主要方向應該也是在此。

Deno 支持 WebAssembly 程序。JS 不僅要壟斷瀏覽器,還要壟斷 Serverless 。

讲真我猜 node 和 deno 估计以后是主流 WASM runtime,其实现在已经支持了。

而且 WASM 主流浏览器都已经支持了,compile 到 WASM 是各个语言自己的事情了。

只不过大部分社区都在等现成的 GC,懒得自己写 runtime,所以大部分 WASM 成熟的语言都偏 bare metal,比如 C/C++,Rust,Go 。

万物皆可 import

让谷歌垄断某个领域的坏处早就出现了。
希望 GNU 、Mozilla 、Microsoft 在编程语言方面减少谷歌的垄断,哈哈。

求前端歇歇吧。。。

其实不需要后端渲染引擎也可以获取到的, Google 就会执行 js 的

node, deno,enod,oden,endo…

所以为什么一定要有 ts 转译 js 这个过程?

那你得問瀏覽器了,他不認識 TS 。

你在说啥呢,代码在 deno 这个运行时里跑,又不在浏览器里跑,关浏览器啥事

社区也回答过不要想着 deno 去取代 nodejs 。
0.x 和 1.0 API 改了不少,建议不要用于生产环境,
我用来写单文件脚本的,
如果你觉得 bash 不够用,python 又不会用,但自己熟 JS/TS 那这玩意适合了

看了下文档,已经有类似 go mod 的Import maps了,估计最后包管理整得跟 go 差不多
npm 生态现在也有 cdn 可以转换
目前比较缺的是编辑器支持

ts 没有运行时,编译成 js 就可以白嫖 js 的运行时。否则要么自己实现一套 ts 的运行时,要么实现一个 ts 到二进制的编译器

已经放弃了 JS

准备今年学习下 javascript,变化太大了有点看不懂了

来不?来了,来了吗?快来了。来了,来了。还来吗,来不了。

所以他写了 deno 为啥不彻底点,写个 ts 的执行引擎替换掉 v8,不然又有多大意义,来来回回在 js 这首破船上缝缝补补

我一直都感觉说“Deno 将来要取代 Node”听起来就像是“Elasticsearch 将来要取代 MongoDB”或者“Go 将来要取代 C++(事实上 Go 初期确实是这么宣传的)”,本身在设计和定位上都是有区别的东西,硬生生捆绑在一起,引起一轮又一轮争论,但这种争论对于讨论的问题本身是没有什么意义的,反而对新技术的推广有很好的的效果……

我个人比较信服 The Hype Cycle,Deno 目前应该是结束第一阶段开始第二阶段的快速增长,但我选择等第四阶段稳步上升期再看看。

感兴趣的可以深入了解一下技术细节,了解得越深,就能在越客观的角度上看待一项技术。


国内垃圾营销号、自媒体的误导,天天“XX 要火”“XX 要凉”“XX 取代 OO”的 UC 式宣传,
然后一群人技术能力不咋的编段子能力倒是挺强的人跟风抖机灵,没几个人关注技术。🤷‍♂️

坐等大佬们先踩坑…

  1. deno 原生支持 typescript,所以不太需要 is-number 这样的包,不会造成数量庞大的依赖包的现象
    2. 都用 deno 了,大多数都会用 typescript 开发的
    3. 前端的工具链太多,转换过来难度比较大,但后端造轮子是很快的,特别是像 typeorm 这种本来就是用 ts 写的库

Go 官方不可能宣传要取代 C++,有没有 GC 是本质区别。怀疑你记错 Rust 了。

不仅 Go,任何有 GC 的语言都不可能宣传取代 C/C++。

另外,Deno 的情况比较特殊,不能用其他事情去类比。Deno 的作者就是 Node 的作者,他自己出来演讲说 Node 不好(说法是 js 发展太快已经与开发 Node 当时的情况不匹配),取名为 Deno 也是故意带着与 Node 对着干的意思。

来不了,什么快速低成本切换方式出来了再说

设计很喜欢,现在在等生态移过去。
自 es6 标准化了 module 后,node 好像因为设计问题一直没跟上标准,出了个 deno 直接跟过去 say goodbye 也挺好的。

话说 web 这是要接替 java 完成全平台统一的大业啊。

我只是在吐槽当前舆论风气。

只因为当年 Google 说公司内部需要在一些用途用 Go 来代替 C++开发,然后各大媒体就争相宣传 Go 要取代 C++的气氛,以至于前几年有大量的帖子说如何从 C++迁移到 Go,给人一种错觉,Quora 、Reddit 、Medium 上也有很多人表示疑惑究竟要不要从 C++切换到 Go,Google 内部的 C++开发者也一直在吐槽用 Go 取代 C++是无稽之谈。

Go 官方确实没有说要替代 C++,就像 Deno 官方也没说要替代 Node,人家 ry 只是在 PPT 里讲了一些过去的经验并引出 Deno 的想法,就被媒体歪曲成“ry 怒批 Node 的几宗罪,扬言开发 Deno 取代之”。

一个当年典型的宣传 Go 的文章 https://medium.com/edvindizdarevic/golang-the-next-language-to-learn-for-developers-2c7c32b8a095 可以看到,C 语言之父背书(对应 Node 之父背书),里面还拿 Go 和 C/C++作比较(对应拿 Node 作比较),提到了 C/C++的一些缺点(对应 Node 的设计失败),是不是像极了如今的情形。

Rust 和 Go 的纷争是后来的事情,但是呢,在深入了解之后就能发现,这两个语言的发展方向区别还挺大的,Go 现在是服务开发最热,Rust 现在是系统开发和中间件开发的趋势,所以说讨论哪个好哪个不好真没啥意思。

设计上看有击中痛点, 表示看好.
另: 不折腾就不是前端圈了

太多了,写不动了,还是与 Node 合并吧。

昨天看了看 Deno, 感觉很香. 和 Node 比起来更像一门完整的编程语言. 目前看运行时的稳定性和安全性也比 Node 高不少

还有人梦想接替 java,前端还在造轮子的时候,java 已经构建了一个帝国,java 每个方面不是最优,但是可以拼凑起一个庞大的设施,而且不需要什么高超的技术就可以让他工作的还可以

node 还没搞懂 ,又来个 deno
后面是 done ?

现在 Go 已经开始在蚕食 Java 各种组件的地位了,普遍更轻更快。

那你得問自己了,你是覺得只兼容 JS 好,還是覺得同時兼容 JS 和 TS 好,畢竟你會 TS,不代表別人也會 TS,作者肯定不會放棄 JS 這個群體的,畢竟先 JS the First, then TS 。

現在還沒考慮生產環境,只是一個新生兒。與其他腳本語言無關,也不用特別跟 node 比較,一個是 10 年前,一個是 10 年後,node 出生的時候都還沒有 Promise 。

新的東西出來肯定會和主流碰撞比較才能在某種程度上得到宣傳和推廣,我們只需要進行必要的了解和學習,至於用不用該技術,各有所愛。

不存在的,java 天下第一,php 是最好的編程語言。node 出生的早,一直在接近標準,已經很香了。

欣赏这种偏执

关于“Node.js相关:Deno已来,你来不来?”的帖子,作为一名IT技术人员,我认为Deno确实为JavaScript/TypeScript的运行时环境带来了新的选择和可能性。

Deno是一个注重安全性和简洁性的运行时环境,它默认在沙箱中执行代码,对文件系统和网络访问有更精细的控制,减少了潜在的安全风险。此外,Deno原生支持ES模块,并通过URL引入依赖,避免了Node.js中复杂的依赖管理问题。同时,Deno还支持开箱即用的TypeScript环境,对于喜欢使用TypeScript进行开发的开发者来说更加便捷。

以下是一个简单的Deno示例,展示如何使用Oak框架创建一个HTTP服务器:

import { Application } from "https://deno.land/x/oak/mod.ts";

const app = new Application();

app.use((ctx) => {
  ctx.response.body = "Hello, Deno!";
});

await app.listen({ port: 8000 });

上述代码创建了一个简单的HTTP服务器,监听8000端口,并对每个请求响应“Hello, Deno!”。

然而,需要注意的是,Deno目前仍然是一个相对较新的项目,其生态系统和模块库不如Node.js丰富。因此,在选择使用Deno还是Node.js时,需要根据具体的项目需求、开发团队的技术栈和偏好进行权衡。

回到顶部