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

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

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

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

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

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

但如果我运行一个 deno 程序,大多数情况下我都可以非常放心。
9213 次点击
所在节点    JavaScript
59 条回复
namelosw
2020-05-17 11:59:35 +08:00
@jjx 那不是挺好嘛…… Go 的 std,Rust 的底层,TypeScript 的表现力,把强项都捏在一起了。
不然想象一下 Rust 的 std,TypeScript 底层,Go 的表现力捏在一起是怎样一番景象……
namelosw
2020-05-17 12:02:54 +08:00
@cmdOptionKana 不过 TSC 真的太难写了。现在 TypeScript 已经是小半个 Dependent type 语言了,现在 type operator 非常碎片化,而且每天都在加功能。主流语言除了 Scala,没有比它类型系统更复杂的了,这俩哪个更复杂还很难说……
cmdOptionKana
2020-05-17 12:07:34 +08:00
@namelosw 这个确实,微软那帮人疯起来实在可怕,新特性疯狂地加,那么拼干嘛……
darknoll
2020-05-17 12:37:54 +08:00
不看好
namelosw
2020-05-17 12:55:53 +08:00
@cmdOptionKana 因为 type operator 这种东西是个潘多拉魔盒,一旦跨越了泛型,追求更高级的类型系统,就要加无数 type operator,加了一个就会发现你需要更多的 type operator,最后还是有 cover 不了的 case 。直到把 type system 变成一个真正的编程语言,或者跟本语言合体,签名和非签名代码可以互相混用。

TS 的类型系统不像普通的 Hindley-Milner,简单优雅地实现泛型,大部分情况都能推导就结束了。

首先要兼容 JS,type 已有语言用 Hindley-Miller 这种系统肯定就不行。历史包袱很多。

然后 type 一个没 type 过的语言,要 annotate 已有的库就非常困难,比如 JS 里完全就可以写出来如果入参是奇数,返回值就是 File,偶数返回值就是 Function 这些行为。所以要加 operator 尽量 cover 这些 case 。

这个趋势的终点就是语言和类型系统完全融合,成为一个完全的 dependent type 语言,效果就是能自己写一个 type safe 的 printf ( parse 第一个参数,字符串里面有几个%s%d 之类的来决定后面的参数类型,我理解主流语言还没有能做到的),或者一个 SQL 或者 GraphQL 查过去,不依赖 codegen 就能做到强类型(也不依赖 F#的那种 type provider )。

但是里这个距离应该还有很远,估计最后还是要有新语言或者重写来解决。不过让所有人能认识到这种需求是存在的是件好事,不要在泛型上继续内卷……就跟 Java 1.5 之前很多人认识不到泛型有用一样。

对这个话题感兴趣可以搜索一下 Lambda cube 这个概念。
sorke
2020-05-17 12:57:55 +08:00
权限的授权终端还是用户, 作为一个小白用户(比如我的父母)才不懂权限是什么, 只要不烦他就好了, 他们连看一下提示的想法都没有. 搞得这么麻烦实用性就差了, 说到底还是市场的选择
lxml
2020-05-17 13:06:38 +08:00
为啥大家老在纠结权限不会用问题,这玩意根本就不是给正常用户用的,面向的是程序员程序员!提什么父母不会用,不给权限就退出是想什么呢???好歹了解下这个东西是干嘛好不好。
hareandlion
2020-05-17 13:15:54 +08:00
看了入门教程,编译,自带 format 。。。有种 golang 的熟悉感
masker
2020-05-17 13:37:14 +08:00
JavaScript 天下第一! deno 天下第一!(,吹爆,高潮了
charlie21
2020-05-17 16:13:30 +08:00
闭源怕怕求开源
开源怕怕求 deno
如果 deno 出现一个 0Day 漏洞就好玩了
vtychx
2020-05-17 16:49:40 +08:00
1.0 版本都还没出吧,等等党永不为奴
这个权限管理是仿照安卓么,需要事先声明
charlie21
2020-05-17 16:52:40 +08:00
权限这个事,这也算个事阿?
哪里下载的脚本,伤害不伤害本机,都随缘的
诶你别看 deno 脚本号称怎么样,好像不给权限了就没事了,这就是你运行来路不明的脚本的理由吗?哦 是
缘,妙不可言
各种来路不明的脚本,就说是 deno 写的,你就敢运行了是吧?
缘,妙不可言
autoxbc
2020-05-17 17:04:44 +08:00
@ipixeloldc #38 swc 暂时还没法用,一些基础的转码都是错的
me876
2020-05-18 09:12:28 +08:00
死在 deno 安装第一步,brew install deno 失败.....
1244943563
2020-05-18 10:59:52 +08:00
deno 刚出来你用了多久就开始这么吹?`就完全没有这些担心,deno 的安全性很高,很实用!`,实践了吗,还是就看了个 demo 就激动睡不着了。JS 社区真能折腾,搞得人都想转后端
RockShake
2020-05-19 09:27:33 +08:00
你怎么知道你 import 的 URL 没有被劫持呢
cmdOptionKana
2020-05-19 10:06:20 +08:00
@RockShake deno 的 import 语句是长这样子的:

import { serve } from "https://deno.land/std@0.50.0/http/server.ts";

可见,它是用 https 来防止劫持。
jipf9046522
2020-12-04 15:58:39 +08:00
deno 凉了吧...
cmdOptionKana
2020-12-04 16:24:49 +08:00
@jipf9046522 没有凉,但我的兴趣已经转移到 F# 😂

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

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

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

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

© 2021 V2EX