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

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

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

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

既然 Microsoft 肯开发 Typescript , 何不也考虑一下“Typthon”呢?感觉会是大庇天下程序员俱欢颜的大好事啊。
8404 次点击
所在节点    程序员
85 条回复
Al0rid4l
213 天前
社区文化很不一样的, 前端是一个语法还在 stage3 就有一堆项目敢给你上生产, py 从 2 到 3 过渡都用了多少年, 也就比 Java8 好一点吧

抛开社区文化因素, 还有非常重要的一点是, VSCode 在一开始就用了 TypeScript, 且一开始就对前端提供了一流的支持(开箱即用的补全和浏览器 Node 调试), 并且 VSCode 飞速发展取得巨大成功带来的示范效应也是很足, 这种重量级应用不亚于 Docker K8s 之于 Go, JS 四个爹, 三个传说级(水果 Google MS)一个史诗级(Moz), TS 亲爹 Anders 也是传说级, 从社区, 到背后公司(钱), 到设计者(品味), 到重量级应用(光环示范), TS 是属于是 buff 叠满了

VSC 和 TS 差不多同时出生, 互相成就, 假如 VSC 一开始没多久就烂了, 那指不定 TS 可能又是另一个 Flow, 在人们眼里可能也就一个普通的大公司内部用的小众语言罢了, 再叠个强运 buff (
me1onsoda
213 天前
因为 Python 不是工业编程语言吧,就是很少用来做业务的。
me1onsoda
213 天前
说来也挺奇怪的,都说前端娱乐圈,结果在编程语言上 js 一家独大,居然没得选,没人在编程语言上动歪脑筋搞 kpi 。后端却娱乐地五花八门。
Leviathann
213 天前
@qiaobeier 我只是听过 没用过
junkun
213 天前
@DOLLOR bool 在 python 里实际上是 int 的子类,issubclass(bool, int) == True 。虽然定义有些魔法,但是既然是子类不能计算反而也很奇怪。
wizardyhnr
213 天前
你要找的是不是 Mojo?
nirnovo
213 天前
typthon? 认真的吗? 中文翻译成胎神???
Magicdove
213 天前
@nirnovo 笑死了🤣
cmdOptionKana
213 天前
@me1onsoda 受浏览器的限制啊,浏览器只支持 JS ,除了 Chrome/Firefox 等浏览器背后的公司,别人根本无法支持其他语言。
c0t
212 天前
@biochen 事实上,新标准都是倾向解耦,feature 不 feature 不是说一句就成的,标准规定则正确,未定则 ub ,不严谨的写 c 类语言哐哐遇到 ub 的时候就知道错了
lovelylain
212 天前
早期的 Python 与 js 相比,确实更讨喜,但后来 js 打了无数补丁,es6 本身就引入了箭头函数、解构赋值等便利特性,ts 的类型系统更是加分项,所以后来就变成了 Python 反过来跟随 ts 了。
yb2313
212 天前
有的兄弟,这样的语言还有 9 个, 其中最合适的就是 rust
bronyakaka
212 天前
你说的就是 mojo ,已经在开发了
mlhiter955
212 天前
@cmdOptionKana #8
@JYLu #10 花样的基础都是 JavaScript
yh7gdiaYW
211 天前
我觉得 python 的类型提示已经足够好用了,可能需要的是一个可选的运行时检查的严格模式,并不需要一门强制写类型的变种语言
tonytonychopper
211 天前
@me1onsoda 要动歪脑筋,也要浏览器支持才行啊
bler
211 天前
不同的语言有不同的生态,也有各自不同的语法特点,但是 python 我使用过的编程语言中,最接近自然语言的一门编程语言,其他语言大多有很多奇奇怪怪的语法,新手很难看懂,而且随着大模型的兴起,纠结这些已经没啥意义了,语言奇奇怪怪的一些特点,人类很难记住,但是大模型可以,以后就是面向大模型编程,几十年的积累,你所遇到的问题,基本别人也遇到过了
RainySeason
211 天前
@biochen #21 C#也是"12",感觉没啥问题啊,大部分时候的需求就是 "金额:"+100="金额:100”
RainySeason
211 天前
@RainySeason 如果是 python 还得 "金额:"+str(100)
dragondove
211 天前
@yh7gdiaYW 静态检查的部分没必要带到运行时,运行时需要的检查可以用 pydantic 之类的设施补全。支持复杂类型系统的语言大部分类型信息也是不会留到运行时的,因为运行时不需要。(而且不留到运行时这样抽象反而是零成本的,资源消耗更少,当然用 python 就不考虑这个了)

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

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

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

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

© 2021 V2EX