为什么没有类似 TypeScript 这样的 TypePython 语言( Python 超集)呢?

2020-11-17 11:36:19 +08:00
 miniyao
人多发现用 TypeScript 确实规范了很多,增加的成本是可以接受的。

好像没有发现 Python 有类似的超集语言 TypePython 这样的呢?
6961 次点击
所在节点    Python
44 条回复
mepwang
2020-11-18 09:07:41 +08:00
自己从头做一个新的编程语言,或者从现有 python 分支一个出来
看不爽就自己搞出个新的来打倒它,这才是来源精神
namelosw
2020-11-18 10:31:11 +08:00
@laike9m 这些都是 checker 的事情啊,并不妨碍你用,可以 any,可以 allowJs. TS 不像其他的静态类型语言 check 不过就不能运行.
halo117
2020-11-18 10:41:30 +08:00
@namelosw 主要是这些概念超前的类型理论只要有好处一定会被现有 PL 至少在未来某天吸收并在某种特性延展开来,而不得过往一开始就标榜类型系统强大的语言身上得到繁华。 性能,代码复杂度维护,抽象表达能力三者从项目角度是不可能同时满足优势的三角,只能取其两两。现代软件工程里面只关注前两者居多,后者过于复杂是应该非常警惕,而且不可取
namelosw
2020-11-18 15:01:37 +08:00
@halo117 很多人都会下这种结论, 我倒觉得可疑... 比如 map filter 复杂吗? 其实用几天就会发现一点也不复杂. 我很久以前看到 90 年代的老帖子, 很多人觉得让大部分程序员理解 map filter 是不可能的事情. 60 年代 Turner 就已经就已经搞清楚了, SICP 里面也清楚地写着, 结果 2013 年左右才真正进入主流视野. 不仅 map filter, 只要用一用, 连 Promise 这种概念主流程序员都能理解了.

Hindley-Milner 的类型系统比 TypeScript 和 Scala 容易理解得多, 人们不用只不过是因为它们长在技能树上的不同分支上罢了. 我只能理解成归根结底是人们思想闭塞, 不愿意接受不同的思想.

我觉得 Paul Graham 的“Blub 语言”很好地解释了这个现象: 为了不伤害某些人的感情, 假设“Blub 语言”即某个平庸的主流语言. 当“Blub 程序员”往鄙视链下面看的时候, 就会觉得“连 X 功能都没有, 简直是辣鸡”. 当“Blub 程序员”往鄙视链上面看的时候, 因为他不能理解这些设计, 因为他只会以 Blub 的形式来思考, 只会觉得“这些功能很奇怪”或者“都是 Blub 功能的语法糖而已”.

因为工业界充满了“Blub 程序员”, 所以有价值的 feature 都要等半个世纪才会 adopt. 很多“Blub 程序员”每天还会抱怨自己做了一段时间的项目都是屎山, 却不能意识到他们的工具早已 underkill 了.

Blub 语言出处: http://www.paulgraham.com/avg.html

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

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

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

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

© 2021 V2EX