我对 Python 的困惑

2017-07-25 09:11:34 +08:00
 assad

最近关于 Python 成了最热门的语言的言论很多,我却很困惑。

平时项目,我感觉用 PHP 就蛮好,很多项目都直接用了 PHP。 Python 以前我也写过一些 Web 项目,无奈性能太差,就是上了 PyPy,也没见提高到哪里去。而且也就那样了。

再就是用 Python 写一些简单的服务,定时任务,脚本,以及监控任务,感觉还不错。

机器学习和深度学习呢,感觉中小公司没几个能搞搞,至于 AI,更是那些大公司玩得起的。

那么,Python 对于我们这些小公司呢,究竟能用来干些什么?写 Web,API 开发,PHP,Java 能比它做的更好;爬虫呢,又不是每个公司都需要,其他呢? AI 和深度学习我们又玩不起,那么为啥 Python 还这么火?大家都在用 Python 来干嘛呢?

19431 次点击
所在节点    程序员
160 条回复
loopio
2017-07-25 20:30:55 +08:00
自动化运维
albertofwb
2017-07-25 20:45:08 +08:00
@assad 兄台此言差矣。无论公司规模多小自动化运维还是很有必要的。
albertofwb
2017-07-25 20:53:42 +08:00
@xxxss 老哥稳。这是真爱
jy01264313
2017-07-25 21:45:32 +08:00
@bestkayle 那个框架是什么这么牛逼?
我有点孤陋寡闻了,我所知道的一个纯 C 的 Web Server 框架
lwan https://github.com/lpereira/lwan
也没有这么厉害啊
sagaxu
2017-07-25 21:52:41 +08:00
@assad 回家用 i5-6500 测了一下,PHP-FPM 版本为 7.1,Python 版本为 3.6,QPS 如下
PHP 裸跑不用框架,41K
PHP + CI 直接 echo,11K
PHP + CI 载入 view,10.3K

nginx + uwsgi + flask, 17K
tornado 裸跑 keepalive 10.5K
tornado 裸跑 短连接 7.5K

所有测试均为 500 并发,10 万个请求,0 个失败。
gclove
2017-07-25 22:05:35 +08:00
@sagaxu 有 pypy 吗
BoBoy
2017-07-25 22:07:46 +08:00
instagram 业务量是不是也没有你所谓的性能不行之说?我不信你公司有 instagram 一款 App 牛逼,手动斜眼。。
EchoUtopia
2017-07-25 22:18:11 +08:00
gouchaoer
2017-07-25 22:33:04 +08:00
写运维我还是用 php,内容处理是 php 强项。。。至于爬虫,php 的基础设施也很好
gouchaoer
2017-07-25 22:36:27 +08:00
hello world 的 qps 没用。。。。后台有 redis/mysql/rpc 的才有意义,连接池、异步等组件 php 生态完爆 py
billlee
2017-07-25 22:51:24 +08:00
@gouchaoer #110 php 搞连接池你要 C 扩展吧,python 要自己搞个连接池是分分钟的事。
freefcw
2017-07-25 23:00:13 +08:00
@est 哈哈哈,看到一个老人出来吐槽了~~说起来,上 v2 都十多年了哎
jpacg
2017-07-25 23:07:47 +08:00
@sagaxu 赞一个,没个 Python 几年开发经验,也敢评价 Python,搞的我都想开贴说明了。
sagaxu
2017-07-25 23:11:12 +08:00
@gclove pypy 也顺手测了一下

nginx + uwsgi + flask, 31K
tornado 裸跑 keepalive 48K
tornado 裸跑 短连接 23K


@gouchaoer python 连接池不需要扩展,拿 pure python 就能写了。异步从 py3.5 开始是语言特性,增加了 async/ await 关键字,asyncio 则是包含了协程的异步标准库。PHP 的异步生态,要等 swoole 替代 FPM 了,swoole2 的协程也不错,我司项目里有投入使用。
cranelee13
2017-07-25 23:43:43 +08:00
怪不得说 PHP 是最好的语言。
gouchaoer
2017-07-25 23:48:52 +08:00
@sagaxu 我最近要把 mysql 一些数据定期备份到 hive,一开始为了交接方便用 py,毕竟大家都多少会点。。。在 centos7 上为了装个 py 的 aes 加密库和操作 hive 的 thrift 的客户端你不知道有多折腾,pip 打包的库依赖一团糟;装完用 mysqldb 取 mysql 结果发现返回 dict 丢失了字段顺序,好吧 hack,然后字符灾难继续 hack,写了半天非常不爽,怒换 php 三下五除二搞完。。。要知道我是先接触 python 几年后才玩的 php 的,我只能说 py 本来可以更好,可是自己弄了很多不好的东西;而 php 实在是太适用于内容处理了,简单的 array 和标准函数
Allianzcortex
2017-07-26 00:28:15 +08:00
@gouchaoer dict 是哈希的 key-value,本身这种结构就无法保证有序,Java 里的 HashMap 也是一样无序,Collections 里提供了 OrderedDict 来保证顺序。发现 Python 的 dict 无序后第一反应难道不应该是搜 "Python dict order"吗?列出的第一个不就是 SO 的回答吗 https://stackoverflow.com/questions/1867861/python-dictionary-how-to-keep-keys-values-in-same-order-as-declared。
Allianzcortex
2017-07-26 00:33:30 +08:00
最近压力也很大,我再说点:做技术最重要的还是解决问题,在这种情况下什么语言真的无关紧要。我也很难说喜欢 Java 读取个文件也要搞装饰器模式动辄五六行的代码,但 JVM 生态圈显然是逃不掉的,纠结语言的真的没有意义。因为知道一点技术就高己卑人,产生众人皆醉我独醒的优越感,是成长过程中的大忌。我也曾经沉迷其中,直到有人给我点出这一点我才觉得自己太过分了:-D
sagaxu
2017-07-26 00:47:52 +08:00
@gouchaoer

python 的 aes 和 des 加解密我都用过,比 php 的 openssl_xxx 是要麻烦不少,第一次用也花了我半个小时有的。

python 用 thrift 怎么折腾了?

pip 的依赖关系不是会自动处理吗?如果是 C 扩展,你只要把它编译时用到的 lib 装上就行。难道 php 安装 C 扩展会更容易?

作为先接触几年 python 的人,竟然也会吐槽 dict 的无序?编码问题不是只有新手会懵逼吗?


我觉得问题就出在“毕竟大家都多少会点”,能写几行的人的确很多,可是真正掌握了基础的要少得多,
我感觉好多人自以为懂 python,其实还没入门,我们某些同事写的 python 代码我都觉得没法看,只能删了重写。
jarlyyn
2017-07-26 00:50:25 +08:00
@sagaxu

用啥工具测的 qps?

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

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

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

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

© 2021 V2EX