有没有觉得, Python 这个语言,越来越复杂(繁杂)了

2021-06-23 10:58:53 +08:00
 piqizhu8

最近一段时间,我都在研究编程语言,因为我也想创造一个编程语言, 不过我目前主要用的是 Python


在我看来,一门语言应该减少歧义,语言内要减少分裂

但我发现 Python 越来越复杂了,语法糖越来越多了, 比如:

3.9 版新增的 合并 dict 的操作符 | |=

这 2 个操作符实现的功能,dict 本身的方法就可以容易、直观的实现

增加这 2 个操作符 虽然可以少打几个字, 但是 这样不断的堆砌语法糖, 未来会让这个语言很混乱,

我个人目前没有发现这 2 个操作符带来了多大的价值,有些弊大于利

想问问大家的看法

7689 次点击
所在节点    问与答
72 条回复
chenqh
2021-06-23 14:11:17 +08:00
@laoyur 在 `if ` 加个 `1 == 2` 不就好了码?
BeautifulSoap
2021-06-23 14:19:43 +08:00
比起 python 的各种语法糖,我是真的希望 go 能稍稍加点更加便捷的语法。比如 `if 'data' in slice` 这种,这种东西虽然自己亲手给不同类型的 slice 写不同的函数也不是不行,但是能编译器直接支持下是真的体验会更好点
laike9m
2021-06-23 15:21:33 +08:00
然而每个语言都是越变越复杂的
joyhub2140
2021-06-23 16:10:08 +08:00
这就是 java 能大行其道的原因,JAVA 真的很适合一大伙人做大工程,没有乱七八糟的语法特性,近十年来最大的进步还是支持函数式编程,无论新手还是老师傅,都能最大限度集中在业务上面。
vicalloy
2021-06-23 16:49:51 +08:00
@joyhub2140 Java 的语法特性还不够多?
TypeError
2021-06-23 17:25:22 +08:00
所以好多公司 python 转 go 了
OysterQAQ
2021-06-23 17:55:39 +08:00
Java 程序员感觉 python 过于灵活了
lonewolfakela
2021-06-23 18:04:59 +08:00
个人感觉脚本语言要看语言的简洁性的话就完全不应该找 python……不如看看 lua 是怎么用超级简单的语法元素构建出来的
kongkongyzt
2021-06-23 19:29:00 +08:00
同感.
Python 现在的发展和 zen of python 感觉完全相悖了, 让我有些失望
除此以外, type hint 做的还是不够好
async 设计得也没有 Go 那么好, 当然这点表示理解
jiezhi
2021-06-23 19:38:14 +08:00
每次需要时间转换我都跟头疼。
dhou45
2021-06-23 20:05:42 +08:00
同意楼上说的, 过于脚本化, 只能是胶水语言缝缝补补用的, 性能拉胯慢的要死.. 现在我也不用 python 了
O5oz6z3
2021-06-23 20:32:56 +08:00
有点同感,新语法学不过来了。
不过很好奇楼主所说的“dict 本身的方法就可以容易、直观的实现”是什么?能不能给一下完整的新旧写法对比一下优劣?
想知道楼主还觉得什么语法糖很混乱
levelworm
2021-06-23 21:05:53 +08:00
所以实际工程中往往需要有 coding standards,有些东西不给用,有些东西必须用,等等。不然人多了代码量上去了,就得累死了。
levelworm
2021-06-23 21:07:07 +08:00
就我浅显的水平,对函数式的那些东西实在没啥兴趣。喜欢函数式去写 LISP 呗,非要在 C++或者 Python 里写是闹哪能。。。
chenqh
2021-06-23 22:13:12 +08:00
@TypeError py 转 golang 基本都是因为性能,
chenqh
2021-06-23 22:14:04 +08:00
@lonewolfakela 别呀,想 lua 这种 list, dict 不分的语言, dict 还有空洞的语言,还是不用为好把
abcbuzhiming
2021-06-23 23:09:26 +08:00
java 属于语法糖过少的话,python 这种就明显属于过量,其实 js 这两年也有语法糖过量的趋势,语法糖过量的是会影响代码阅读,自己一个人开发无所谓,别人看你的代码就会比较痛苦
muzuiget
2021-06-24 00:19:28 +08:00
同样不喜欢各种魔法函数,除非不得不用,比如接口定死又要重新实现。不然老老实实把函数名字定义出来好。
yingbo
2021-06-24 01:08:13 +08:00
的确过量。操作符的意思没有函数名称直接好记,不应该太多。我是觉得像这种复杂的操作,还是留给函数 /方法比较好。说起过于繁杂的语法糖,其实 python 还远赶不上 scala 。Scala 我看就是到处都是“回字的六种写法”,门槛提高了还没啥太大的好处
NatsuMune
2021-06-24 03:16:24 +08:00
笑到最后的还是 Java

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

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

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

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

© 2021 V2EX