请原谅我再水一贴 deno,因为实在太激动了

2020-05-16 17:40:00 +08:00
 cmdOptionKana
一般来说,运行一个别人写的脚本(或程序、软件),通常会担心它会不会向外发送本机的隐私,会不会读取我的个人文件,会不会删除我的文件……

但如果这是一个 deno 脚本(程序),就完全没有这些担心,deno 的安全性很高,很实用!

deno 默认不允许对硬盘进行读写,不允许网络访问。

只有在运行的时候明确指定权限,才有访问权限,而且,可以指定具体的域名,指定具体的文件夹目录!

简单来说,如果我运行一个 C/C++或 Go 等各种语言编写的程序,我要么相信它的来源是干净的,要么自己花大量时间精力去审查代码、自己编译,要么就要承受风险(比如它可能隐藏了勒索病毒、可能悄悄挖矿)。

但如果我运行一个 deno 程序,大多数情况下我都可以非常放心。
9200 次点击
所在节点    JavaScript
59 条回复
murmur
2020-05-16 23:24:33 +08:00
于是你就看到遍地都是
deno 怎么访问磁盘
deno 怎么访问网络
deno http 404
cmdOptionKana
2020-05-16 23:47:32 +08:00
@murmur 低级问题永远有人问,就算把工具做到超级简单易用,也防不住有人问低级问题。
cmdOptionKana
2020-05-16 23:50:30 +08:00
@yimity 你说这个倒是真的,最现实的一个例子就是,桌面网页版的网站不利于收集用户数据、打广告,于是现在都在把用户往 app 上赶。

这就是你说的,如果一种技术能保护用户,那我就用别的技术,把用户赶过去。
mara1
2020-05-16 23:54:56 +08:00
问下啊,前几天访问 deno 官网,读了篇介绍,末尾有个赞助,100 美元一件的衣服,我很少见官网上放赞助的,还是 100 美元,常见一些个人博客放些,赞助几块钱喝咖啡的。请问这是怎么个意思,如果入不敷出了,是不是后期就没人维护了
hronro
2020-05-17 00:02:37 +08:00
你们都搞错了吧,这个功能不是面向普通用户的,而是面向程序员的,为了防止 NPM package 里面被植入恶意代码之类(之前 NPM 有过盗取比特币的前例)的。
cmdOptionKana
2020-05-17 00:09:21 +08:00
@mara1 表面上看,deno 暂时是靠爱发电,没有工资没有收入,估计广告、赞助啥的也几乎等于零。至于背后有没有财主支持,那就不知道了。

长远来看,主要还是看能不能得到业界认可,有没有人去用。只要用的人多了,必然有人接手维护,大企业不差这个钱,只要是有热度的东西就有价值,总有企业去接手的。

如果撑一两年都没有发展,那就凉凉了,也许有人继续半死不活地维护等待复活,也许直接停滞,这种情况并不少见,很多以前曾经火过的语言、框架现在都沉寂了。
newtype0092
2020-05-17 00:37:31 +08:00
如果需要动态域名怎么办?比如请求一个白名单内的域名获取一个资源文件列表,但资源文件不确定在哪个域名下,这时候是不是白名单就没用了?
janxin
2020-05-17 09:14:54 +08:00
用户使用教程:

请打开 XXX 权限,XXX 权限,否则程序无法正常使用!

用户:

我叼,怎么这破程序无法正常使用!
cmdOptionKana
2020-05-17 09:34:14 +08:00
@newtype0092 在复杂的情况下,白名单确实没用。deno 的这个特性在很多情况下可以提高安全性,但不是一个完美、全能的方案。

瑕不掩瑜。
jinliming2
2020-05-17 11:00:36 +08:00
我是觉得权限限制会有用,但也仅限安全意识比较高的用户。
对于绝大多数用户来说,限制了网络权限,那么 --allow-net 参数就会成为标配,进而转变成在启动程序的时候,不管有没有网络需求都加上 --allow-net,甚至于 --allow-net 干啥用的都不知道,只知道不加这个参数可能会报错……

比如,对于很多程序员来说,sudo 就是各种命令的标准前缀了……都不知道 sudo 是支持详细配置权限控制的,直接默认配置就是给个 ALL……程序没起来,先不看错误提示,反手加一个 sudo 再试试,还是不行的话才将错误信息复制到 baidu 搜一下具体原因,然后可能由于 sudo 执行了一下产生了一个 root 用户所有的临时文件,导致后续所有解决问题的命令都加上了 sudo……
namelosw
2020-05-17 11:02:35 +08:00
Deno 挺好的。启动很快,Node + TypeScript 平时用起来得搞一堆 transpile,启动慢成狗,本地开发和发布区别还很大,每次写都很麻烦。生态起来了就肯定有很多人用。

所以有事没事搬运一些 npm 包过去。既加速了生态建设,又赚了 Github 星星,何乐而不为呢?
namelosw
2020-05-17 11:08:31 +08:00
楼上都多虑了,权限的问题,比如要网没网的时候启动 Deno 会提示。感觉跟 iOS,Android 之类 App 要权限差不多。

再说,即使用户搞不清 sudo 是干嘛的,也不应该把 sudo 这个功能删了吧……
cmdOptionKana
2020-05-17 11:11:08 +08:00
@namelosw 据说他们还打算用 rust 来处理 typescript (未查证),到时还能更快。
jjx
2020-05-17 11:12:25 +08:00
deno 是个怪胎

很奇妙的将 go 的一些思路, rust 做扩展 typescript 做主要语言

给整在一起了
fakeshadow
2020-05-17 11:24:11 +08:00
然后翻了一下,你要用的脚本 /库 /程序还没人用 deno 写。
ericgui
2020-05-17 11:35:56 +08:00
deno 的包管理会是一个超级大坑
liudengchn
2020-05-17 11:47:46 +08:00
不让读写硬盘。。你用它作甚
ipixeloldc
2020-05-17 11:49:32 +08:00
@cmdOptionKana https://github.com/swc-project/swc
rust 是有相关项目的,并且作者最后确实也谈了,希望 ts 的处理必须重写( https://deno.land/v1#tsc-bottleneck )
ipixeloldc
2020-05-17 11:53:00 +08:00
@ipixeloldc 希望那个词,删掉,打时脑抽了。。。
cmdOptionKana
2020-05-17 11:57:45 +08:00
@ipixeloldc 原来是真的,这个作者真的太有魄力了,到时重写后又是一个诱人的优点,typescript 算是真正成为服务器正规军的一员,希望微软能有所表示(按照最近微软对开源界的态度来看,可以乐观预测会有所支持)。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/672381

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX