Q:我是做前端开发,有影响吗?
A:即便你有用到 Vue 等类似的框架的话,也不推荐你用 deno。除非你的项目超大型,每次编译都慢得要死,按照官网的说法,应该能略微提高效率。

Q:我在用 electron 开发桌面应用,有关系吗?
A:暂时没有,虽然有一些相关的方案出现,但暂时还没有经过市场检验的作品。

Q:我在用 node 跑服务器应用。
A:可以尝试 deno

deno 更安全可靠

模块由什么语言编写
Nodec++
npmjs
denorust + js
  • deno 在 2.0 版本完成了对 npm 生态的支持,也就是说 deno = node + npm
  • 为什么更安全?
  • Node 需要用 c++ 开发,在开发过程中需要自行进行谨慎的指针管理、内存管理,同时意味着需要跑大量测试,也意味着要大量编译时间。
  • 一方面:开发体验一定不是很好;开发效率也不会很高
  • 另一方面:BUG总是会有的,一旦出BUG,那些使用 Node 跑的服务(服务器、应用)就会坏掉,作为被大量使用的工具来说,这不仅是商业考量,可能还有一定的社会责任了。
  • deno 使用近年风头无两的 rust 进行开发,由于其语言特性天然得就避免了出现 内存泄漏、指针空悬 的发生的可能性。从而做到了 安全可靠。
  • 怎么 deno 还有用 js ?后文将会作相关说明。

deno deploy 可以快速发布应用

这是 deno 提供的一个让你的应用代码快速发布的服务。
不必你购买并部署服务器环境!
借用了 Github 的数据连接功能?
似乎在一定的访问量下免费,同时收费并不贵。
其余的略,自行了解。

用 deno 我该怎么写 js

没有什么特别的变化。
只不过你使用的库不一样。

参考 https://choubey.gitbook.io/internals-of-deno/architecture/2.3... 的说明:

Deno, such as the CLI, module graph management, runtime execution, operational functionalities, and core mechanisms, heavily utilize Rust.
  • CLI、模块依赖图管理、运行时执行、操作功能和核心机制 大量用到了 rust
  • 使用 js 编写的部分

    • getEnv、setEnv、alert、confirm和console日志等功能
    • 以及 etc 模块。提供一系列 Web API。

      • 缓冲区(Buffers)
      • 文件系统交互(File System interactions)
      • 进程管理(Process management)
      • 信号处理(Signal handling)
      • HTTP通信(HTTP communication)
      • 用户提示(User prompts)

运行时变化:

  • node

    • js 在 v8 上跑
    • 涉及到和原生系统交互有关的会跑 c++ 代码
  • deno

    • js 也在 v8 上跑
    • 涉及到和原生系统交互的底层代码有关的会跑 rust 代码

用 deno 我的代码会跑得更快吗?

我觉得不一定。
虽然官网一些 branchmark 显示会更快。
但 deno 其实并不以执行速度为卖点。
因为和 node 一样,编写的 js 是在 V8 上跑的。
只有部分和原生系统相关的功能用到了 C++ 或 rust,C++ 和 rust 都是原生语言,按照我的猜测,这个得看具体功能的相关代码的实现。
至于因为编程语言设计上的特点从而能采用对应的编译后指令优化技术、运行时的缓冲命中率、多核性能的充分利用,这些方面就得更多的研究才能得出结论了。


RDDcoding
151 声望17 粉丝

一心一行