Typescript 如此成功,为何没有发展出所谓 “Typthon”?

214 天前
 JYLu
作为编程新手,我爱 Python 。我认为这是一个简洁好用的语言,生态丰富,官方文档细致,社区活跃。我本人目前在读研,是做应用数学里面算法方向的,做算法实验的时候,Python 简洁的语法和高质量的数值计算库使得实验编码的效率大大提高。

然而 Python 的类型有点过于灵活,这使得我在写程序的时候不时感到担忧,比如担心传参的时候传入非法的数据然而 IDE 却不能提醒我。类似地,这种强大的灵活性有时也使得调试 Python 程序变得很困难。比方讲假如你的程序里有不止一处语法错误,这些语法错误可能只能在运行时才能被发现。而且似乎运行一次只能找出一处错误,你需要不断地运行才能查找到所有的语法错误。

鉴于 Javascript-> Typescript 的大获成功,为什么没有发展出所谓的 “Typthon” ?既有 Python 简易的语法,又有很好地的 Python 的互操作性从而可以轻松地继承 Python 丰富的生态和活跃的社区,借助编译器使得调试维护程序更加轻松,岂不美哉?

既然 Microsoft 肯开发 Typescript , 何不也考虑一下“Typthon”呢?感觉会是大庇天下程序员俱欢颜的大好事啊。
8403 次点击
所在节点    程序员
85 条回复
Tanix2
213 天前
大点的项目我必用 mypy
JYLu
213 天前
@janus77 以前强调 Python 是脚本语言,不适合复杂工程,这倒也没错。然而现在 Python 的大型项目是越来越多了吧,而且这个问题的出发点不就是这样么?推出"Typthon" 使得 Python 更易被应用到大型项目中。
JYLu
213 天前
同志们,我发这个帖子只是开脑洞而已。没有比较不同语言优劣的意思,大家不要误解。
Felldeadbird
213 天前
我觉得用 typython 为什么我不用别的开发语言。js 是因为 web 端发展不得不衍生出来的。
luting
213 天前
想写就去学 Type Hint(类型注解), Python 一直以来这种实现都是君子协定(即人的问题处理人, 程序的问题处理程序, 而不是程序去处理人的问题)

而且如果你好好学过 Python 的话应该知道 Python 是没有严格的私有属性的, 而且这种静态检查是可以通过 mypy 去实现的, 选择权交还给用户, 你可以拿 Python 写静态或不写静态, 所以用 Python 的人才多

你有需求你可以自己用, 但你不能强迫别人也去适应你的需求和习惯(即把类型检查嵌入到解释器中), 如果你喜欢这种严格的约束, 那学 Rust 是更好的选择

如果是喜欢 TypeScript 的静态检查带来的错误提示, 那只是因为 VSCode 自带了 TS 的语言服务器, 你可以给 VSCode 安装 Pylance 插件(这个是 Python 的语言服务器), 并把 Pylance 的类型检查开启为基本状态或者严格状态 (相信我, 如果你的包结构足够复杂, 你是绝对不会喜欢严格的类型检查, 如果说 Go 是在处理错误, 那严格的 Python 就一直在写类型)

培训班或者科班没讲的东西, 不是 Python 没有只是他们没讲, Python 这么多包, 没事多看看优秀的包的源代码

静态类型是非常方便维护的东西, 即让代码明确清晰有自解释, 但是对于 Python 的另一个场景, 大部分普通人拿来当脚本, 写一堆静态类型出了降低效率并不会带来多余的好处.

如果你要开发 Python 包, 那就应该使用静态类型, 如果这是脚本, 除了代码量特别大的, 那就不需要. 简单讲, 你需要在开发速度和可维护性上自己去权衡如何使用, Python 将选择权交还给了用户.

最后, 请尊重别的开发者, 他们在该如何设计编程语言上肯定要比我们这种设计都没设计过的要懂的多.
usVexMownCzar
213 天前
虽然没有 tyPython ,但是有 pyScript 🤪
mark2025
213 天前
帖主看看 Typescript 的首席开发是谁,他以往经历有哪些~~
最主要的是 Typescript 后面是微软,有足够的人力财力可以投入。
iorilu
213 天前
python 添加类型注解多少年了把

而且这不是强制的

你需要就都添加上呗
ansnail
213 天前
@JYLu #10 JavaScript 能一统前端江湖靠的不是优秀,而是出生的早,前端花样多,但内核就那么几家。服务器不需要统一的解析标准,能给自家提供数据就行,随便折腾。
twig
213 天前
除了 type hint 还有 Pydantic 呢。
mdn
213 天前
因为 JavaScript 无可取代
irisdev
213 天前
ts 出现时 ie 还没死透,chrome 也还没有一统天下,node.js 生态开始活跃,微软研发 ts 肯定有商业上的考虑。至于 py ,搞这个就吃力不讨好了,何况 py3 已经有类型了
Hopetree
213 天前
python 现在就是有类型定义的,但是我不喜欢用,python 的优势本身就是编写和实用快捷,如果都写类型,感觉还不如去用 Go
chenqh
213 天前
@Hopetree 但是 py 现在可以实现一些自己用的 utils 写类型,业务不写类型.这也是一种优势吧.如果 utils 可以复用的话,写类型还有必要,如果是一次性的,就没有必要写了.
akira
213 天前
一款语言 ,他有啥没啥 ,那就是这个语言的特性。 不要老想着 A 语言有的东西,B 语言就一定要有。
选择适合自己的语言就是了。 语言本身不重要的
roundgis
213 天前
Python 的 yype hint 和 jsdoc 差不多

當然我現在也是用 jsdoc 比較多
kaki1lI
213 天前
大型项目用 pydantic 和 mypy 会方便维护,ruff 的语法检查多开一些也有帮助
lts9165
213 天前
python 有 pydantic ,自由,可以比强类型更强
Levox
213 天前
Python Type Hints 简明教程
https://zhuanlan.zhihu.com/p/464979921
qiaobeier
213 天前
@Leviathann #1 朋友你 40 了吧?

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

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

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

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

© 2021 V2EX