引子 - 今天的争论:IMPORTANT: PEP 563, PEP 649 and the future of pydantic
个人观察: Flask 作者、SQLAlchemy 作者等都不太喜欢现在的 Python 发展情况,详情见他们推特。
个人感觉是一直加可有可无的语法糖而带来无谓的 break change 。
1
paddistone 2021-04-16 10:05:03 +08:00 3
通过 V2EX 看的
|
2
TypeError 2021-04-16 10:18:58 +08:00
只加语法没前途,再不提高性能,只能转 Go 了,
Python 也就搞搞科学计算还有优势 |
3
sujin190 2021-04-16 10:29:50 +08:00
@TypeError #2 但是你要知道,数据科学产生的各种研究、算法、库的价值是永久的,再说性能远没有你想的那么重要,方便使用才是,就凭现在各种深度学习相关的,python 再战 50 年都绰绰有余,go 可就不好说了
|
5
xingshu1990 2021-04-16 10:32:51 +08:00
@sujin190 #3 性能这个东西 也不能武断的说不需要,本身可以有办法将 1 个小时的工作,缩减到 30 分钟内,虽然看起来没太大影响,但是本身代码编写就已经很方便了,性能稍微提升一些,做一些对性能要求并不高的操作,也是没太大问题。
|
6
Vegetable 2021-04-16 10:39:53 +08:00
pydantic 作者提到说理事会还有成员昨天之前没听过 pydantic 是什么,说实话这有点离谱了
学习一下「从群众中来,到群众中去」 |
7
sujin190 2021-04-16 10:43:45 +08:00
@xingshu1990 #5 不是不需要,是没你想的那么重要,对于 python 来说,简洁简单和更好性能来选择,那肯定选前者,再说对于 python 来说,数据科学、人工智能、科研实验才是它的未来,就像深度学习,你性能再高能比得过专业团队设计的运行框架么,比得过专门设计的神经网络芯片么,所以讲究啥性能,让各教授大佬研究生快速入门把他的想法实现出来才是正理
|
8
arischow 2021-04-16 10:45:32 +08:00
一定程度上没有好爹,社区自治体制下的结果。
然后就是使用的群体目的比较分散。 |
9
threebr 2021-04-16 10:46:06 +08:00
Python 唯一让我迷惑的就是 CPython 实现下为什么要加个线程间的全局锁?这不是自废武功么。不然性能可以提升一大截
|
10
abersheeran 2021-04-16 10:46:39 +08:00 1
我觉得这个 PEP 还真不应该撤回。它解决了两个痛点,第一是 typing 模块拖慢 Python 运行速度,一份满满都是 type hint 的 Python 代码远比啥也不加的要慢。第二个是取消了类型注释的运行时影响,在我编写代码的时候,我不喜欢写 Any,所以经常遇见一个类方法 /属性返回另一个类,而另一个类里也有方法 /属性返回这个类,而这两个类又是不同功能,放在不同模块的,从而导致循环引入问题。最重要的是,它终于实现了 typing 一开始的承诺——无运行时影响。运行时影响本身就是一个实现上的 BUG 。
pydantic 作者反对,大概是因为代码写好了不愿意动(他最近也挺忙的),我十分理解他的心情。但 fastapi/starlette 就算了吧,代码里面多少 Any 看过的人都有数,这个 pep 对它来说就是可有可无。 --- 楼上说到性能,社区现在也有使用 type hint 作为元信息进行编译加速的,虽然还是个半成品,但也在发展了。而且据说 Python Core Developers 也在筹措 CPython JIT 的事。 我倒觉得与其炮轰这个,不如让那些家伙别再加语法糖了,把精力放在 JIT 上不好吗。 |
11
15399905591 2021-04-16 10:51:07 +08:00 1
python 目前感觉是四面开花, 按现在的情况来看,后续发展方向肯定是往科学运算方向了,web 方向不管是 go 还是 java,感觉都比 python 更有前途。
|
12
est 2021-04-16 10:51:58 +08:00 1
|
13
est 2021-04-16 10:54:20 +08:00
看到这在喷 Larry Hastings 。感觉不应该啊。Larry 是 Gilectomy 作者,努力去掉 GIL 的。
|
14
whileFalse 2021-04-16 10:57:45 +08:00
我想知道大部分 Python 用户是用它来干什么?
如果大量用户只是写写小工具、科学计算,可能并不关心这些有的没的吧。科学计算可能对性能稍微敏感。然后现在 Python 性能烂的一 B,不知道算不算现代主流编程语言里最慢的?(虽然作为小工具用户我也不 care 性能……) |
15
Mithril 2021-04-16 11:03:06 +08:00
Python 现在用的最多的是科研这帮人吧,真的有人会很在乎它的性能?各种框架里面涉及到性能的基本都 C++走起了。Python 实际上就是张草稿纸。
除了有的公司不讲究直接把草稿纸扔给客户发布了,不然做到产品里的都会重构一遍吧? |
16
lewinlan 2021-04-16 12:18:45 +08:00 via Android
python: 我只考了 30 分
pydantic: 我让 python 提升到 50 分了!我超牛逼! |
17
cmdOptionKana 2021-04-16 12:23:46 +08:00 1
其实 python 发展方向一直都是正确的,就是作为胶水语言,这方面 python 无敌。
|
18
Mohanson 2021-04-16 12:45:37 +08:00 via Android 2
py 失去独裁者 guido 后就一直在加速加 feature, 已经不再关注这门语言了,个人感觉已经处在衰落期
go 所有语法官方一页 markdown 就结束了,py 各种语法糖黑魔法多的要写一本书。(应该真的有一本书叫做 py 黑魔法,好像 10 来年前曾经看过有点映象… |
19
tmac33 2021-04-16 12:49:57 +08:00 1
少儿编程,首选
|
20
fushallg 2021-04-16 12:53:34 +08:00
怕了,以后还要靠 python 吃饭,结果看你们说 python 似乎不太行了
|
21
Aprilming 2021-04-16 13:36:42 +08:00
我选择的是 python 在没前途的道路-web 开发,我都没绝望,怕毛,性能不行,但是我开发速度快啊,还尼玛快的离谱!
|
22
love 2021-04-16 13:57:03 +08:00 1
连我这种前 Python 粉都转 typescript 了,至少写 web 应用 python 已经被 node 甩飞了
|
23
seven123 2021-04-16 14:02:29 +08:00 1
3 年 python 转 java 了
|
24
zhujq 2021-04-16 14:35:03 +08:00
python 转了 java 又转了 go
|
25
THP301 2021-04-16 14:35:56 +08:00
语法糖语言就这样
|
26
Jirajine 2021-04-16 14:45:11 +08:00 via Android
科学计算 Julia,运维脚本 deno,web 后端 Ruby/Crystal,嵌入脚本 Lua,感觉都比 Python 舒服。
|
27
wunsch0106 2021-04-16 15:27:13 +08:00
@Aprilming 老哥,py web 开发做多久了,我刚毕业一年不到,也是 web 开发的,现在想转 go 了。有点迷茫,py web 开发上限是多少,普遍的来说,20k 能到吗
|
28
neutrinos 2021-04-16 15:31:56 +08:00 via iPhone 1
@threebr 当初引入的时候是因为 GC 算法限制,后来解决了,但是 1. 去掉后单线程性能下降 2. 去掉后无法解决第三方 C 线程安全问题
|
29
so1n 2021-04-16 15:32:30 +08:00
突然发现依赖 pydantic 的框架很好解决这些问题, 难解决问题的是 pydantic 本身, 我自己的框架依赖于 pydantic, 然后通过这样改就可以解决问题了:https://github.com/so1n/pait/commit/64b57a60f9f1dab45a0ae28e3ed967e6cb6f5714#diff-79b67720f2fb8e67e5cd72f33abf0e4f805aba843537b59dcbbcdeb1aa6fdfa5L67
|
30
Aprilming 2021-04-16 15:37:14 +08:00
@wunsch0106 #27 18 年毕业,现在 20k 不到,如果跳一次槽,20k 应该是轻轻松松(上海地区啊),python web 的上限多少我也不知道,我师傅也是 python web, 研发主管,40k 差点意思。主要是单纯做 web 估计够呛,我现在算是半个全栈(当然不会 css 啦!)
|
31
wunsch0106 2021-04-16 15:49:29 +08:00
@Aprilming 现在公司的项目难度不是特别大, 也没高并发啥的。 想问问看,你们公司高并发分布式微服务等用的多吗。感谢老哥回答
|
32
Aprilming 2021-04-16 16:03:39 +08:00
@wunsch0106 #31 没有,我们的业务并发不高,但是我们要用到私有云,搞起来就很难受。
|
33
chenqh 2021-04-16 16:09:45 +08:00
有时候很好奇为什么 php 能性能优化那么多? ruby 也可以,但是 ruby 就不可以
|
38
luofan004 2021-04-16 16:32:31 +08:00
python 有自己的应用场景吧,包括 web 方向,再说程序语言到最后都是互通的,只要一直在进步,最后不都是一致的。
|
39
princelai 2021-04-16 16:52:40 +08:00
@Jirajine #26 我工作是 python 机器学下相关,曾经很迷恋 julia,觉得性能太棒了,但是学了 1 年后,才发现是鼓吹的人多,真在用的人太少了,想要把 julia 写好,小技巧真的太多了,入门水平写出的东西也就和 numpy/pandas/sklearn 这些持平甚至更差点,更不用说 tensorflow/pytorch 这些生态了,科学计算追上 python 再等 10 年吧。
|
40
Jirajine 2021-04-16 17:55:56 +08:00 via Android
@princelai 我只是说比 Python 舒服,毕竟是一门从最开始就为科学计算设计的语言。
Python 的一个大问题是对函数式太不友好了。 |
41
onice 2021-04-16 22:03:50 +08:00
我搞安全的,用 py 写安全工具,挺香的。
我也写 web,py 开发速度也很快。目前对 py 很满意。py 几乎是万能的。 |
42
abersheeran 2021-04-16 22:40:36 +08:00
@Jirajine https://aber.sh/articles/How-to-writing-functional-Python/ 一点我写函数式 Python 的心得。我不觉得有不友好,可能是我和你的使用习惯不一样,你可以看一看我的以作参考。
|
43
inframe 2021-04-16 23:22:37 +08:00
快速原型搭建上,我觉得 python 是最快的语言和最充分的生态圈
|
44
levelworm 2021-04-17 01:00:02 +08:00
最烦的就是往上不停的堆东西。其中堆函数编程得最烦。
|
45
domodomo 2021-04-17 03:59:01 +08:00
10 年前的标题是“你们如何看待 Perl 的发展方向?”
我估计有人就没听说过 Perl 吧,这就是历史呀。 |
47
hangszhang 2021-04-18 09:10:35 +08:00
当脚本,写小工具用
|
48
agagega 2021-04-18 09:43:36 +08:00 via iPhone
原来语言 feature 太多也会被吐槽,我想知道 Go 的粉丝怎么看待 Swift/Rust ?
|
49
jones2000 2021-04-18 11:15:37 +08:00
@threebr 都用 CPython 了,当然所有的计算的东西都放在 c++里面完成了. 在 c++内部你可以自己开并行或多线程, 外部 py 只负责传数据和接收结果就可以了. c++和 py 交互尽量少, 影响效率.
|
50
DeWjjj 2021-04-18 18:24:18 +08:00
python 挺好的,至少在就目前而来很长一部分时间都会是创业团队首选之一。
反而 go 这样的大型项目都当组件的语言,如果再不动动反而觉得不好。 |
51
no1xsyzy 2021-04-19 12:54:32 +08:00 1
|
52
binpo 2021-04-22 14:27:25 +08:00
|
54
wunsch0106 2021-04-22 16:27:50 +08:00
@binpo 余杭哪啊
|
55
leven87 2021-04-23 12:47:52 +08:00
挺好的呀,我在欧洲读书的时候, 学校里面做数据处理,深度学习 python 是必会的,可以说几乎所有的工科生都是必会 python 的。 而且 python 也可以做 web, 挺好的。
|
56
binpo 2021-05-12 10:17:14 +08:00
@wunsch0106 滨江,长河
|
57
Lighthughjiajin 2022-06-16 17:21:20 +08:00
@Aprilming 大佬方便透露 v 吗,一起学习
|