Py学习  »  Python

这破 Python

编程派 • 5 年前 • 365 次点击  

作者 / Kevin 

没想到我一个 07 年就入坑 CPyUG 从此走上从业道路的人,也会有来吐槽 Python 的一天。事实上自从上一次 Guido van Rossum 因为 PEP 572 事件而长文退出管理之后,我就想吐槽了。尤其是这个 Python 3.7 啊,你把 async 改为保留字就算了,为啥作为属性还能报错,搞得基于 pylama 的静态检查在 3.7 下全部异常,真不知道管理层脑子里面都在想啥。

工程选择上前有狼后有虎,排头的 JAVA / C / CPP 系只要自己不作,基本是干不赢的。要知道即便是人力成本贼高的「精通 C/CPP 」从业人员,就能产出的东西而言比招一个玩 Python 玩得 6 的高到不知道哪里去了,更何况 JAVA 狗遍地走,人力成本你拿头去比啊。后面 Go 这种比你复杂不了多少,一个静态强类型语言工程管理成本大幅降低,最不济的人家至少不会去争 tab 还是 space 对吧。重写就有性能数量级的提升,还容易部署,开发运维都开心。

再看看 Python 这十几年都干了啥。10年前后 CPython 2 性能还能压着 Ruby 打,和 PHP 干得有来有回。现在一看 Performance,连 Ruby 都能跳到 Python 头上踩一脚了,别提 Pypy ,根本就上不了生产。

11年的时候国内本来用 Python 的就少,我在金山做性能方面调研的时候算国内很早接触了 Gevent/fapws3/uwsgi 的人,做了几次测试,写了几篇文章,翻译了几个报告,感觉这些东西真鸡儿棒,整个社区在这方面百花齐放,尤其是 Gevent。后来自己用 Gevent 实操了快盘的改造,又来到豆瓣以它为底层构建了 Douban App Engine,在 Python 2 的时代实现了全异步 IO 的应用框架,用过的开发都是爽得不要不要的。

然后喵的又过了 6 年再看,都他妈 Python 3.7 了,大清都亡了百来年了,算上 tornado 这种显式 Promise/Future 的框架,能在生产中能弄起来的还是那么几样东西:Gevent,tornado,greenify 和 flask/django 然后用 gunicorn 跑。

Asyncio?是,标准库这个内置异步 IO 看起来香,吃起来是真的臭。好歹 Gevent 这类遇到 C level 的 IO 处理还有 greenify 这样的生产上验证过的库来 monkey patch 达到自动异步,各种生产的轮子也都有了,实在觉得隐式异步不好 debug 还有 tornado。一旦你用 Asyncio 就得自己重新实现一整套轮子。远的不说,MySQL 的 asyncio 异步轮子就没见着一个比 MySQLdb 完备度高的,看看 aiomysql 的 issues,惨不忍睹,抄啥不好抄 Pymsql。

还有那对标 requests 的 aiohttp,都出来多久了,还能有这种坑,拿头跟 requests 比啊?

Sanic?抱歉,真的就只是一个 demo 而已,和 flask 就别比了。

最后轰轰烈烈的 Python 2 和 Python 3 之争,字符串编码问题是解决了,结果引入了更多类型需要开发自行处理。王炸 Asyncio 发展了这么就还是个半成品全靠人填。yield 搞了半天语法糖还是不如隔壁 lua 的 coroutine,所以升个级最大的 feature 就是 print 成了函数么?

这么久的 2 to 3,性能上被曾经脚下的 Ruby 骑在了头上,痛点 GIL 反正是不会碰的,一辈子也不会碰的,杀手级特性在工业上落地就要堆人,语言层面上也没见着一个更加简练高效的语法。GC 优化?不存在的,就当没这个 GC,然后 PEP 就过家家一样争要不要新的语法糖?

喵喵喵?

看看当年 PEP 333 意气风发,再看看如今 PEP 572 眼界狭隘,这 Python 啊吃枣药丸。

原文链接:https://cmgs.me/life/python-fallen

回复下方「关键词」,获取优质资源


回复关键词「 pybook03」,可立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「pybooks02」,可立即获取 O'Reilly 出版社推出的免费 Python 相关电子书合集

回复关键词「书单02」,可立即获取主页君整理的 10 本 Python 入门书的电子版



作为 Python 粉的你,看到这篇吐槽文有什么想说的?


欢迎留言和我们分享



如果觉得文章对你有所帮助,欢迎点赞并且推荐给你的好友。


印度小伙写了套深度学习教程,Github上星标已经5000+

上百个数据文件合并,只能手动复制粘贴?教你一招十秒搞定!

一个提升图像识别准确率的精妙技巧

一文读懂:从 Python 打包到 CLI 工具

如何使用 Python 进行时间序列预测?

美亚Kindle排名第一的Python 3入门书,火遍了整个编程圈

十分钟搭建私有 Jupyter Notebook 服务器

使用 Python 制作属于自己的 PDF 电子书

12步轻松搞定Python装饰器

200 行代码实现 2048 游戏





Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/29943
 
365 次点击