异步是 Python web 的未来吗

2020-07-25 12:19:57 +08:00
 limyel
今年刚毕业入职一家小公司,主要用 Python 开发 API 。之前我都是用 Django 和 DRF,工作之后公司的项目全是异步的...以后的项目也都用 fastapi 了,现在异步、asgi 在 Python 越来越火了吗
8695 次点击
所在节点    Python
67 条回复
maemual
2020-07-25 17:38:21 +08:00
我怎么感觉 Python Web 的未来是 Golang 呢。。。。
Vibra
2020-07-25 17:39:16 +08:00
异步是编程的未来,不是 py 的未来
wysnylc
2020-07-25 17:41:55 +08:00
@Nich0la5 协程目前有第三方包能实现,jdk 的正在开发中
所以,有
rockyou12
2020-07-25 19:51:15 +08:00
@Nich0la5 对不起……java 也已经有协程了,只是是都不是 jdk 里的
so1n
2020-07-25 20:34:09 +08:00
使用的 fastapi 好处不止是协程,还有结合 TypeHint 这个也很重要的
ericls
2020-07-25 21:14:59 +08:00
@abcbuzhiming 除了 java 你说的两种都用过 还用过别的语言写 web 比如 Node elixir rust 我也不觉得 Python 在 web 会死掉. 写起来快 性能不差 你能说说具体为什么 Python 会死吗?
abersheeran
2020-07-25 22:00:46 +08:00
只会 Python 是没有未来的。异步的确是 Python web 的未来。
GoLand
2020-07-25 22:49:45 +08:00
但凡在项目里用过 Python 异步的也说不出 “异步是 Python web 的未来这种话”,Python web 的未来真的是 Go 。
TypeError
2020-07-25 22:58:43 +08:00
@abcbuzhiming 跳出圈子的话,欧美还一堆公司用 Ruby 呢
youngce
2020-07-25 23:11:52 +08:00
以前 Python 多线程异步解决不了的问题,协程异步就能解决了吗?协程异步确实减少了系统开销,协程异步代码一定程度更简单。但是你去看看 go 的协程是多么的无脑且高效。。。。Python 异步也不是一个什么新话题了,真没必要说什么越来越火了
Hstar
2020-07-25 23:53:30 +08:00
异步的确是 Python Web 的未来,只是这未来有点远,远得像是在天际。
目前 django 本身对 async 的支持也只是 in progress,什么时候 ORM 和底层 SQL 连接库都支持 async 了再说。
qiaobeier
2020-07-26 00:01:36 +08:00
web 的 py 是好 py
jeeyong
2020-07-26 01:00:19 +08:00
半开个玩笑说, WEB 的未来没有 Python
leimao
2020-07-26 01:02:16 +08:00
个人感觉做 client 还可以,做 server 那应该别想了
laike9m
2020-07-26 02:30:59 +08:00
fastapi 的主要优势并不是异步,而是依赖注入和自动文档生成,此外就是好得令人发指的开发文档了。用过的都知道有多香
laike9m
2020-07-26 02:33:38 +08:00
对了,原生支持 pydantic 也是一大优势
phithon
2020-07-26 02:44:12 +08:00
python web 脱离了 django 生态,没有未来
forrestchang
2020-07-26 03:08:07 +08:00
我司 10 亿级 PV 的 Python Web 项目,也没什么问题,用的 wsgi 。
abersheeran
2020-07-26 04:59:12 +08:00
要申明一下,ASGI 本身就是 Django 团队提出来的。fastapi 红的快主要是率先提出了 type hint 进行类型检查 /转换 + 自动生成 docs 这个概念。而 Django 由于尾大不掉,现在要全部转换异步生态需要很久,但绝不是不转换了。我预测在 21/22 年就可以全异步了。

Django 从过去,到现在,始终是 Python web 开发里最好的框架,没有之一。说实话,fastapi 就是个拼接怪罢了,它自己什么也没实现,type hint + openapi 是用的 pydantic,web 相关所有组件全部搬的 starlette 。

Python 的 web 生态,除了 Django,其他的 web 框架还真算是有生态?有多少是强耦合的必需品?基本都是通用的,flask 用的照样可以走 bottle 。而现在 ASGI 里,fastapi 能用的,照样可以走 starlette/index.py ,没有框架有 Django 一样的统治地位。我虽然自己也写了实际投入了生产的 web 框架,但我心里最好的 web 框架依旧是 Django,并且只有 Django 。
abcbuzhiming
2020-07-26 09:12:08 +08:00
@ericls 我给你举个例子好了,java 写 PC UI 。有没有,有啊,被论坛天天吹的 IDEA 全家桶不就是 java 写的。但是 java 写 UI 在业界是主流还是非主流,自己扪心自问一下就明白了。

Python 写 Web 会不会死,当然不会,我相信 Python 写 web 的那几个框架会继续进化下去,甚至十几年后,只要 Python 没死,Python 仍然有可能会被人用来写 web 。但是,“能够用”和“大家都愿意用”,这是两个概念。

你问我什么原因,比较优势问题,另外一个就是马太效应。其实这真的很明显了,我真的觉得不是你看不出来 python 在写 web 这个问题上根本没法和 java,php 甚至 go 抗衡。而是你拒绝承认这点。可能你爱着 python 吧

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

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

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

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

© 2021 V2EX