首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Coding
V2EX  ›  Python

一个 py 从业 10 年左右的大佬,不写 Python 之后发的一些迷思。写的可以。

  •  2
     
  •   azuginnen · 98 天前 · 6999 次点击
    这是一个创建于 98 天前的主题,其中的信息可能已经有所发展或是发生改变。
    50 回复  |  直到 2019-09-20 18:34:01 +08:00
        1
    niubee1   98 天前   ♥ 5
    ------------------------------------------------------------
    但事实上是,程序员本身才是性能的最大瓶颈,而工具真正体现出来的价值,是在程序员很烂时,所能提供的兜底性能。
    ------------------------------------------------------------

    所以口口声声说 Python 慢得不行的跑去转 golang 的程序员,大多都是很烂的兜底的程序员
        2
    wellsc   98 天前
    算不上迷思吧,更偏向于有编程基础的人的 Python 扫盲贴
        3
    ClericPy   98 天前   ♥ 1
    还仨月就 2020 了, 还有一大群人用的是没有 Asyncio 的 py2, 对这些人来说反正 py3 也不熟, 不如直接学 go, go 的一个大好处是非核心代码在实习生和老人手里写出来风格差别不会太大
    这个时代, 多学点东西也没坏处
        4
    iPhoneXI   98 天前 via Android   ♥ 4
    Instagram 几十亿月活,还在用 Django 呢
    不同场景用不同语言才是正常做法,
    一味吹 /贬某种语言挺可笑
        5
    watsy0007   98 天前
    我都等着 3.8 发版升级了....
    fastapi + tortoise-orm 估计很多人都没听说过.
        6
    justfortest   98 天前
    @watsy0007 #5 很早之前就听过 tortois-orm 和 fastapi 了,虽然现在不怎么用 python 做项目了,但 python 真是挺好的一门语言。
        7
    Trim21   98 天前 via iPhone
    @watsy0007 tortoise-orm 的下划线查询条件太让人难受了…
        8
    Leigg   98 天前 via Android
    python 真的万能,说老实话,除了 web,分析,服务器一样有商用。
        9
    Leigg   98 天前 via Android
    只是一般人掌握了一点爬虫
        10
    Leigg   98 天前 via Android
    和 django 就觉得把 python 学完了,殊不知只触碰冰山一角。游戏服务器,客户端…还多得很
        11
    Lagrangian   97 天前 via Android
    @Leigg Scientific programming
        12
    pkuphy   97 天前
    @Trim21 写法与 Django 几乎一样
        13
    wd   97 天前 via iPhone
    @niubee1 #1 有时候自己烂不烂以及自己可以多牛逼自己并无法知道,那么安全的选择显然是外表看起来还不错的那个,我觉得没什么问题
        14
    zjsxwc   97 天前 via Android   ♥ 1
    都是听了你们的邪,屁的 Python 万能论,在下十年前也是跟风追 Python,连大学毕业设计不用 c#也是用 Python 做了,但最后到头来发现机器学习数据处理还是要靠 MATLAB,要性能就得上 c++,网站服务端就得用 php,只有适合的语言没有万能的语言。
        15
    azuginnen   97 天前
    @watsy0007 fastapi 不错
        16
    azuginnen   97 天前
    @ClericPy 的确如此。
        17
    cabing   97 天前
    写十年创造了啥价值?

    我觉的语言倒是其次的,为社会创造一些价值才是主要的吧。
        18
    jeeyong   97 天前
    我用 python 写项目.
    现在有稳定的客户群..
    一年净利润 100 万+
    我就偶尔看看, 维护一下..
    我不知道你们在争什么?
        19
    gimp   97 天前   ♥ 1
    @zjsxwc Numpy Pandas scikit-learn 学完数据分析 /机器学习还能继续深度学习,主流数据分析框架都有 Python 接口,涉及到性能的包,底层也都是 C/C++写的,Python 负责调用而已,还拿性能说事情很不合理,服务器端语言选择这么多,Java / Node.js / Ruby 等等等,PHP 又成了必选的语言
        20
    love   97 天前
    曾经也是 py 粉,不过现在我为大 JS 打尻
        21
    cmdOptionKana   97 天前
    @zjsxwc 呵呵哈哈哈,我也感觉 python 的宣传做得很好。
        22
    lpf0309   97 天前 via Android
    所以各位给工科研究生一个建议么,到底学 python 还是 c++还是 Java
        23
    keepeye   97 天前
    哪个生产效率高用哪个,等发展到瓶颈了再考虑重构优化性能,减少服务器开销
        24
    dcalsky   97 天前 via Android
    用 Django 原因之一就是看中他那 django admin 啊,自动搭建多舒服。
        25
    keith1126   97 天前
    @lpf0309

    都学咯,至少计算机专业肯定是要都学的
        26
    azuginnen   97 天前
    @jeeyong 老哥 6. 是这个项目 https://v2ex.com/t/526867#reply10 吗?
        27
    hmxxmh   97 天前 via Android   ♥ 1
    @niubee1 这个我蛮认同楼主的,Python 确实有瓶颈,但是大多数人碰触不到这个瓶颈,只会人云亦云的抨击,捧一个必定要踩一个的做法实在让人恶心,根据需求选择合适的语言才是程序员该做的事
        28
    T3RRY   97 天前
    @zjsxwc hhhhhhh
        29
    azuginnen   97 天前   ♥ 2
    做一个小结,一个简单的做法是,启动程序后,分别创建一个进程池(进程数小于等于可用核数)、线程池和 ioloop,ioloop 负责调度一切的协程,遇到阻塞的调用时,I/O 型的扔进线程池,CPU 型的扔进进程池,这样代码逻辑简单,还能尽可能的利用机器性能。
        30
    Marinej   97 天前
    哇,好文终极感谢
        31
    deepreader   97 天前
    @iPhoneXI 在 Instagram Django 只算是产品后端。news feed ranking, ads ranking, friends ranking 全靠 C++。
        32
    poplar50   97 天前 via Android
    写的真的很不错。
        33
    iPhoneXI   97 天前 via Android
    @deepreader Python 做产品后端就够了,其他也不合适
        34
    so1n   97 天前
    @watsy0007 fastapi 用的怎么样?只用过 startless
        35
    blless   97 天前 via Android
    python 不慢谁还慢?主流就这么几种语言,最讨厌那种所谓大佬一上来就给新人灌输什么 py
    够用了,是程序员自己能力不行的论调。你们觉得不慢那是对语言特性都摸透了,热点,痛点下意识就可以绕开。
    这语言现在 curd 只能说勉强够用,随便来点复杂的,计算多一点的,要不稍微并发高一点的都要花费额外时间精力。我当时测试 pypy+gunicorn+flask+gevent 忙活优化好几天,最后算起来不如我从头学 go 重写来得划算…而且原来抖动延迟直接成一条直线,体验翻倍,这差距已经海了去了…
        36
    ClericPy   97 天前
    @azuginnen fastapi 底层的 starlette 有大组织背书, 我很喜欢, 比某些"大神"的 responder 阉割版好用多了, 但是 fastapi 到底比 starlette 好在哪, 没仔细看底层代码, 当时看了各种 Benchmark 对比里, fastapi 有的快有的慢, 快也不比 starlette 快出个质的差距
    至于 Sanic, 已经很多人吐槽完了就扔掉了, 实在是坑多, 现在就算填上了也不想用
    japronto 实在不敢上生产环境
    falcon 看起来也很快
    vibora 呼声很高, 现在也不清楚什么个情况了

    其中一个 Benchmark 网站
    https://github.com/the-benchmarker/web-frameworks
        37
    NeinChn   97 天前   ♥ 1
    蛤蛤蛤
    "你现在应该可以比较轻松的实现达到 1k QPS 的服务,在白天十小时里可以处理超过一亿请求,费用依然仅 20 元 /天。你还有什么借口说是因为 Python 慢呢?"
    这连什么叫慢都不懂啊....
    吞吐量和时延是两个不一样的事情
    现在服务要求超时就只有 300ms
    Python 裸写能不能在当前业务场景里支持这个时延,这叫快 /慢
    然而显然事实是由于 Python 太慢,不得不在部分 CPU 密集型操作上用 C/C++处理一下,几个语言混编一下
        38
    GeruzoniAnsasu   97 天前   ♥ 2
    都快 2020 了还有人觉得 python “不慢,性能够用了”
    行吧,写 curd 的 web 应用有很多的分布式方案,1kqps 的 web server 横向扩展一下最后也能堆出够用的性能

    除此之外呢?加点计算呢?


    python 光是写个 http 发包压测就能费劲巴力死活跑不满带宽,换 golang 几乎一样的写法轻松打满 1G,这天花板低得一般路过都能看得见,有啥好头铁的嘛,我又不是那种要去顶破天花板的专家,我费这个力干啥,不如换语言
        39
    iceheart   97 天前 via Android
    不太会算数,1k QPS 十个小时是如何跑出一亿请求的
        40
    a852695   97 天前
    @zjsxwc 晕 还 PHP 你是停留在什么年代?
        41
    niubee1   97 天前
    所以看回复就能看到哪些转了 go 又反过怼的,好鉴定贴啊
        42
    azuginnen   97 天前
    @niubee1 这个博主自己应该也转 go 了。
        43
    niubee1   97 天前
    @azuginnen 没有反过来怼啊, 其实真 Python 老鸟没几个是纯用 Python 的,大多数都是复合型人才,喜欢 Python 纯粹就是因为用着顺手,喜欢而已。
        44
    winglight2016   97 天前
    @love 打尻——有点下流的赶脚
        45
    janxin   97 天前
    迷思在哪里...

    这不是教程么...
        46
    artandlol   97 天前 via Android
    python c++ 做科学计算类的都不错
        47
    crella   97 天前 via iPhone
    作为一个非软工的工科生,需要动态生成的脚本用 ruby,需要性能的用 vb.net ,没有 vb 的代码就去 msdn 和各个博客类网站搜 c#相关代码,vb.net 和 c#可以直接互相调用,再不行就 c#编译后用 ilspy、dnspy 转 vb.net 。既可以避免被 ms 卡脖子,又可以显著提高性能。很多 java、c++的专业词汇我很难理解,但是资料丰富的 msdn 加上自动建议的 vs/sharpdevelop,还有不需要注意大小写的 vb.net 真的让我省好多脑子。ruby 的资料也够用。(少打$ ; {等符号真是太爽啦
        48
    LokiSharp   97 天前
    我现在一直在想,如果 Python 能用花括号就好了。。。写 Kotlin 的时候被 IDEA 的自动补全和格式化爽到了
        49
    lujinkai   94 天前
    @a852695 你对 php 的理解看来还停留在 10 年前
        50
    a852695   84 天前
    @lujinkai PHP 你看还有几个公司要
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1973 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 16:23 · PVG 00:23 · LAX 08:23 · JFK 11:23
    ♥ Do have faith in what you're doing.