V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JayLin1011
V2EX  ›  Node.js

Deno 已來,你來不來?

  •  1
     
  •   JayLin1011 · 2020-05-15 01:46:05 +08:00 · 13183 次点击
    这是一个创建于 1658 天前的主题,其中的信息可能已经有所发展或是发生改变。

    「 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

    94 条回复    2020-05-16 18:17:07 +08:00
    autoxbc
        1
    autoxbc  
       2020-05-15 02:25:12 +08:00
    感觉 api 还不太稳定,印象中 readdir <=> readDir 这种反复变动好几次,估计 1.0 之后也不会冻结的
    JayLin1011
        2
    JayLin1011  
    OP
       2020-05-15 06:17:00 +08:00
    @autoxbc 正式版 13 號才發佈,不穩定是常態,但是不妨礙我們了解和嘗鮮,個人覺得 vue3 和 Deno 有空都可以先學習了。「我來到,我看見,我征服。」,與時俱進就是王道。
    Hanggi
        3
    Hanggi  
       2020-05-15 06:42:00 +08:00   ❤️ 1
    跑不了 React 或者 Angular 之前是不可能火的。
    chengxiao
        4
    chengxiao  
       2020-05-15 06:50:28 +08:00
    我是越来越不懂前端了...折腾劲儿真大
    xstmjh
        5
    xstmjh  
       2020-05-15 07:04:11 +08:00
    @Hanggi ????
    zhengdai1990
        6
    zhengdai1990  
       2020-05-15 07:11:30 +08:00 via iPhone
    不来,来不动
    dartabe
        7
    dartabe  
       2020-05-15 07:26:51 +08:00
    据大神说没有解决痛点 只是作者偏执的要实现自己的想法
    GaoJian
        8
    GaoJian  
       2020-05-15 07:41:01 +08:00
    前端真乱
    jinliming2
        9
    jinliming2  
       2020-05-15 07:47:47 +08:00 via iPhone
    来来来,学学学,更新技术栈……
    看起来终于把 node 里那些烦人的东西解决了大半了……
    先试试,看看能不能 duang duang duang 吧……
    fakeshadow
        10
    fakeshadow  
       2020-05-15 07:57:49 +08:00
    玩了一阵子,感觉没库可用。等各位大神丰富了生态我再来吧。
    xiaket
        11
    xiaket  
       2020-05-15 08:01:52 +08:00
    等 endo 的时候再来吧
    k9982874
        12
    k9982874  
       2020-05-15 08:04:19 +08:00 via iPhone   ❤️ 2
    楼上说前端圈乱的,还真就把 node.js 只当前端工具链使啊
    seakingii
        13
    seakingii  
       2020-05-15 08:16:39 +08:00   ❤️ 1
    个人感觉比 Deno 比 Node 爽多了.

    底子好,再发展发展比 Node 有前途.
    rioshikelong121
        14
    rioshikelong121  
       2020-05-15 08:28:29 +08:00
    这楼里面的弱智言论可真多啊。 哈哈哈哈
    duan602728596
        15
    duan602728596  
       2020-05-15 08:32:24 +08:00 via iPhone
    不会有人认为 node 的依赖只能写版本号吧,不会有人认为 node 不支持 github 地址吧
    hareandlion
        16
    hareandlion  
       2020-05-15 08:37:49 +08:00
    不来,一样是新语言,golang/rust 不更好玩?出卖灵魂的工作语言的话,用什么都一样
    seakingii
        17
    seakingii  
       2020-05-15 08:44:56 +08:00
    当前本人会尝试使用 deno,当库 /生态成熟时,应该会用来替代 node.js 在相关的项目.
    ss0xt
        18
    ss0xt  
       2020-05-15 08:47:50 +08:00
    node,deno,仔细一看,以后会不会有 edon,oned ... 之类的,
    janxin
        19
    janxin  
       2020-05-15 08:48:55 +08:00
    不来不来,用 JS-like 为什么不用 Node ?

    不能使用这么多 npm 包,为什么不用其他的语言?
    murmur
        20
    murmur  
       2020-05-15 08:51:21 +08:00
    现在什么风气,东西好用不好用不谈,以前是造轮子,现在先造个语言再说
    murmur
        21
    murmur  
       2020-05-15 08:56:04 +08:00
    @k9982874 你说呢,一天天鼓吹后端渲染 SEO 的,现在的搜索引擎都烂掉了,谷歌被摸得透透得,国内更是$eo
    murmur
        22
    murmur  
       2020-05-15 08:57:27 +08:00   ❤️ 3
    以前后端搞模板渲染得时候,前端做前后端分离,等现在后端开始做接口弄前后端分离的时候,她又把渲染扔回后端了
    真的是前端的嘴,骗人的鬼
    12tall
        23
    12tall  
       2020-05-15 09:02:27 +08:00
    持观望态度
    huruwo
        24
    huruwo  
       2020-05-15 09:05:45 +08:00
    弱弱的问一句现在还有人只用 jq 吗
    me876
        25
    me876  
       2020-05-15 09:07:34 +08:00
    我就想知道 deno 有没有 node_modules 这个恶心人的东东了
    zhlssg
        26
    zhlssg  
       2020-05-15 09:09:38 +08:00
    @me876 没有
    JayLin1011
        27
    JayLin1011  
    OP
       2020-05-15 09:21:01 +08:00
    @chengxiao 確實,原生 JS 才是王道,jQuery 天下第一。
    JayLin1011
        28
    JayLin1011  
    OP
       2020-05-15 09:22:05 +08:00
    @zhengdai1990 我不來,我不是,我沒有,是他們來了,是他們先動手的。
    JayLin1011
        29
    JayLin1011  
    OP
       2020-05-15 09:23:53 +08:00
    @dartabe 作者確實一直很偏執,從 GO 到 Rust,還有各種性能評測,改了又改。
    max1024
        30
    max1024  
       2020-05-15 09:24:49 +08:00
    不来。我觉得前端目前已经足够了。
    JayLin1011
        31
    JayLin1011  
    OP
       2020-05-15 09:24:54 +08:00
    @GaoJian 神仙打架,娛樂看官。
    LiuJiang
        32
    LiuJiang  
       2020-05-15 09:25:21 +08:00
    没啥意义,Deno 作者想干掉 node_modules,就这么简单。
    JayLin1011
        33
    JayLin1011  
    OP
       2020-05-15 09:25:54 +08:00
    @fakeshadow 你趕緊幫忙造輪子=。=
    JayLin1011
        34
    JayLin1011  
    OP
       2020-05-15 09:27:10 +08:00
    @seakingii 時間會給出答案。
    JayLin1011
        35
    JayLin1011  
    OP
       2020-05-15 09:28:35 +08:00
    @rioshikelong121 物以類聚,人以群分,還好你比較睿智和出眾。
    JayLin1011
        36
    JayLin1011  
    OP
       2020-05-15 09:29:50 +08:00
    @hareandlion 這不是新語言。。只是一個兼容 JS 和 TS 的運行時。
    JayLin1011
        37
    JayLin1011  
    OP
       2020-05-15 09:32:17 +08:00
    @seakingii 雖然說取代 node 還比較早,但嘗試使用總是沒錯的,冒險精神也是程序員的優秀品質,走出舒適圈就是進步的第一個里程碑,你的方向是正確的。
    betulac
        38
    betulac  
       2020-05-15 09:32:53 +08:00
    什么时候转换工具出来了我自然就支持了
    collery
        39
    collery  
       2020-05-15 09:34:36 +08:00
    前端你们是真的折腾
    Chenamy2017
        40
    Chenamy2017  
       2020-05-15 09:37:04 +08:00
    早起的我一脸懵逼。
    lancelock
        41
    lancelock  
       2020-05-15 09:41:30 +08:00
    说实话,宁愿他放弃支持 js,只支持 ts
    lneoi
        42
    lneoi  
       2020-05-15 09:55:35 +08:00
    慢慢来 还得等几年发展
    JayLin1011
        43
    JayLin1011  
    OP
       2020-05-15 10:07:11 +08:00
    @ss0xt 自然選擇之前端生態進化史。。
    chenyu0532
        44
    chenyu0532  
       2020-05-15 10:09:30 +08:00
    等你们人肉测试了。。。
    windfarer
        45
    windfarer  
       2020-05-15 10:10:54 +08:00
    学不动
    LeeeeeeezQ
        46
    LeeeeeeezQ  
       2020-05-15 10:11:15 +08:00
    'deno' = 'node'.split('').sort().join(',');
    JayLin1011
        47
    JayLin1011  
    OP
       2020-05-15 10:14:22 +08:00
    @janxin 「 Any application that can be written in JavaScript, will eventually be written in JavaScript 」。——Jeff Atwood

    翻譯:「一切可用 JS 實現的應用,最終將由 JS 或 TS 實現。」——阿特伍德定律
    JayLin1011
        48
    JayLin1011  
    OP
       2020-05-15 10:16:44 +08:00
    @12tall 可能是這恐龍標誌不夠可愛,去提個 issues 。
    JayLin1011
        49
    JayLin1011  
    OP
       2020-05-15 10:18:26 +08:00
    @max1024 知足常樂。
    guolaopi
        50
    guolaopi  
       2020-05-15 10:19:36 +08:00
    @Livid
    node 节点的背景跟文字对比度太高了。。。每次进来都晃瞎了。。。
    JayLin1011
        51
    JayLin1011  
    OP
       2020-05-15 10:20:16 +08:00
    @me876 沒有是沒有,但模塊和包還是要的,提供一個更多元化的運行時和更統一的生態。
    JayLin1011
        52
    JayLin1011  
    OP
       2020-05-15 10:22:44 +08:00
    @betulac 不存在的。
    JayLin1011
        53
    JayLin1011  
    OP
       2020-05-15 10:23:40 +08:00
    @lancelock 只要你支持了 TS,JS 不也支持了嗎? TS 編譯之後就是 JS 。
    cai314494687
        54
    cai314494687  
       2020-05-15 10:28:13 +08:00
    Mark24
        55
    Mark24  
       2020-05-15 10:36:48 +08:00   ❤️ 2
    作为前端,觉得早早抛弃掉 JS 以及其系列就对了

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

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

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

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

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

    别折腾了
    imlinhanchao
        56
    imlinhanchao  
       2020-05-15 11:01:07 +08:00
    前面一堆說前端的,是確實沒有看過 Deno 的介紹啊。Deno 重點解決的是 Node 的後端問題,主要方向應該也是在此。
    JayLin1011
        57
    JayLin1011  
    OP
       2020-05-15 11:13:02 +08:00
    @Mark24 Deno 支持 WebAssembly 程序。JS 不僅要壟斷瀏覽器,還要壟斷 Serverless 。
    namelosw
        58
    namelosw  
       2020-05-15 11:23:46 +08:00
    @Mark24 讲真我猜 node 和 deno 估计以后是主流 WASM runtime,其实现在已经支持了。

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

    只不过大部分社区都在等现成的 GC,懒得自己写 runtime,所以大部分 WASM 成熟的语言都偏 bare metal,比如 C/C++,Rust,Go 。
    leega0
        59
    leega0  
       2020-05-15 11:33:24 +08:00
    万物皆可 import
    crella
        60
    crella  
       2020-05-15 11:40:30 +08:00
    让谷歌垄断某个领域的坏处早就出现了。
    希望 GNU 、Mozilla 、Microsoft 在编程语言方面减少谷歌的垄断,哈哈。
    DT27
        61
    DT27  
       2020-05-15 11:47:26 +08:00
    求前端歇歇吧。。。
    sslyxhz
        62
    sslyxhz  
       2020-05-15 12:17:30 +08:00 via Android
    @ss0xt 等着 done
    hahaayaoyaoyao
        63
    hahaayaoyaoyao  
       2020-05-15 12:19:57 +08:00
    @murmur 其实不需要后端渲染引擎也可以获取到的, Google 就会执行 js 的
    fantasybei
        64
    fantasybei  
       2020-05-15 12:25:18 +08:00
    node, deno,enod,oden,endo.......
    james122333
        65
    james122333  
       2020-05-15 12:48:10 +08:00
    大而全...
    lancelock
        66
    lancelock  
       2020-05-15 13:02:19 +08:00
    @JayLin1011 所以为什么一定要有 ts 转译 js 这个过程?
    JayLin1011
        67
    JayLin1011  
    OP
       2020-05-15 14:09:57 +08:00
    @lancelock 那你得問瀏覽器了,他不認識 TS 。
    lancelock
        68
    lancelock  
       2020-05-15 14:39:56 +08:00
    @JayLin1011 你在说啥呢,代码在 deno 这个运行时里跑,又不在浏览器里跑,关浏览器啥事
    VtoExtension
        69
    VtoExtension  
       2020-05-15 15:02:34 +08:00
    社区也回答过不要想着 deno 去取代 nodejs 。
    0.x 和 1.0 API 改了不少,建议不要用于生产环境,
    我用来写单文件脚本的,
    如果你觉得 bash 不够用,python 又不会用,但自己熟 JS/TS 那这玩意适合了
    myon
        70
    myon  
       2020-05-15 15:10:29 +08:00
    看了下文档,已经有类似 go mod 的`Import maps`了,估计最后包管理整得跟 go 差不多
    npm 生态现在也有 cdn 可以转换
    目前比较缺的是编辑器支持
    chenluo0429
        71
    chenluo0429  
       2020-05-15 15:39:17 +08:00
    @lancelock ts 没有运行时,编译成 js 就可以白嫖 js 的运行时。否则要么自己实现一套 ts 的运行时,要么实现一个 ts 到二进制的编译器
    resist
        72
    resist  
       2020-05-15 15:48:54 +08:00
    已经放弃了 JS
    miao666
        73
    miao666  
       2020-05-15 15:55:19 +08:00 via Android
    准备今年学习下 javascript,变化太大了有点看不懂了
    threeEggs123
        74
    threeEggs123  
       2020-05-15 16:12:01 +08:00 via Android   ❤️ 1
    来不?来了,来了吗?快来了。来了,来了。还来吗,来不了。
    lancelock
        75
    lancelock  
       2020-05-15 16:26:08 +08:00
    @chenluo0429 所以他写了 deno 为啥不彻底点,写个 ts 的执行引擎替换掉 v8,不然又有多大意义,来来回回在 js 这首破船上缝缝补补
    libook
        76
    libook  
       2020-05-15 16:48:31 +08:00
    我一直都感觉说“Deno 将来要取代 Node”听起来就像是“Elasticsearch 将来要取代 MongoDB”或者“Go 将来要取代 C++(事实上 Go 初期确实是这么宣传的)”,本身在设计和定位上都是有区别的东西,硬生生捆绑在一起,引起一轮又一轮争论,但这种争论对于讨论的问题本身是没有什么意义的,反而对新技术的推广有很好的的效果……

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

    感兴趣的可以深入了解一下技术细节,了解得越深,就能在越客观的角度上看待一项技术。
    DOLLOR
        77
    DOLLOR  
       2020-05-15 17:05:42 +08:00   ❤️ 1
    @libook
    国内垃圾营销号、自媒体的误导,天天“XX 要火”“XX 要凉”“XX 取代 OO”的 UC 式宣传,
    然后一群人技术能力不咋的编段子能力倒是挺强的人跟风抖机灵,没几个人关注技术。🤷‍♂️
    Cryse
        78
    Cryse  
       2020-05-15 17:20:14 +08:00
    坐等大佬们先踩坑...
    stillyu
        79
    stillyu  
       2020-05-15 17:50:33 +08:00
    1. deno 原生支持 typescript,所以不太需要 is-number 这样的包,不会造成数量庞大的依赖包的现象
    2. 都用 deno 了,大多数都会用 typescript 开发的
    3. 前端的工具链太多,转换过来难度比较大,但后端造轮子是很快的,特别是像 typeorm 这种本来就是用 ts 写的库
    cmdOptionKana
        80
    cmdOptionKana  
       2020-05-15 18:01:57 +08:00
    @libook Go 官方不可能宣传要取代 C++,有没有 GC 是本质区别。怀疑你记错 Rust 了。

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

    另外,Deno 的情况比较特殊,不能用其他事情去类比。Deno 的作者就是 Node 的作者,他自己出来演讲说 Node 不好(说法是 js 发展太快已经与开发 Node 当时的情况不匹配),取名为 Deno 也是故意带着与 Node 对着干的意思。
    daimen
        81
    daimen  
       2020-05-15 18:17:19 +08:00
    来不了,什么快速低成本切换方式出来了再说
    lookas2001
        82
    lookas2001  
       2020-05-15 18:24:44 +08:00
    设计很喜欢,现在在等生态移过去。
    自 es6 标准化了 module 后,node 好像因为设计问题一直没跟上标准,出了个 deno 直接跟过去 say goodbye 也挺好的。

    话说 web 这是要接替 java 完成全平台统一的大业啊。
    libook
        83
    libook  
       2020-05-15 18:38:33 +08:00
    @cmdOptionKana 我只是在吐槽当前舆论风气。

    只因为当年 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 现在是系统开发和中间件开发的趋势,所以说讨论哪个好哪个不好真没啥意思。
    dioxide
        84
    dioxide  
       2020-05-15 20:20:53 +08:00
    设计上看有击中痛点, 表示看好.
    另: 不折腾就不是前端圈了
    hantsy
        85
    hantsy  
       2020-05-15 20:58:00 +08:00
    太多了,写不动了,还是与 Node 合并吧。
    markocen
        86
    markocen  
       2020-05-15 22:14:17 +08:00
    昨天看了看 Deno, 感觉很香. 和 Node 比起来更像一门完整的编程语言. 目前看运行时的稳定性和安全性也比 Node 高不少
    murmur
        87
    murmur  
       2020-05-15 22:29:43 +08:00
    还有人梦想接替 java,前端还在造轮子的时候,java 已经构建了一个帝国,java 每个方面不是最优,但是可以拼凑起一个庞大的设施,而且不需要什么高超的技术就可以让他工作的还可以
    shiwoya
        88
    shiwoya  
       2020-05-15 22:49:38 +08:00
    node 还没搞懂 ,又来个 deno
    后面是 done ?
    namelosw
        89
    namelosw  
       2020-05-15 23:09:51 +08:00
    @murmur 现在 Go 已经开始在蚕食 Java 各种组件的地位了,普遍更轻更快。
    JayLin1011
        90
    JayLin1011  
    OP
       2020-05-15 23:13:58 +08:00
    @lancelock 那你得問自己了,你是覺得只兼容 JS 好,還是覺得同時兼容 JS 和 TS 好,畢竟你會 TS,不代表別人也會 TS,作者肯定不會放棄 JS 這個群體的,畢竟先 JS the First, then TS 。
    JayLin1011
        91
    JayLin1011  
    OP
       2020-05-15 23:16:24 +08:00
    @VtoExtension 現在還沒考慮生產環境,只是一個新生兒。與其他腳本語言無關,也不用特別跟 node 比較,一個是 10 年前,一個是 10 年後,node 出生的時候都還沒有 Promise 。
    JayLin1011
        92
    JayLin1011  
    OP
       2020-05-15 23:20:26 +08:00
    @libook 新的東西出來肯定會和主流碰撞比較才能在某種程度上得到宣傳和推廣,我們只需要進行必要的了解和學習,至於用不用該技術,各有所愛。
    JayLin1011
        93
    JayLin1011  
    OP
       2020-05-15 23:23:24 +08:00
    @lookas2001 不存在的,java 天下第一,php 是最好的編程語言。node 出生的早,一直在接近標準,已經很香了。
    martinsu
        94
    martinsu  
       2020-05-16 18:17:07 +08:00
    欣赏这种偏执
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1035 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:07 · PVG 04:07 · LAX 12:07 · JFK 15:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.