V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
ycz0926
V2EX  ›  Python

Python 似乎可以通杀整个后端领域

  •  
  •   ycz0926 · 2018-03-15 14:41:57 +08:00 · 16629 次点击
    这是一个创建于 2448 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有点标题党,却也是个事实,对于创业公司来说,python 真可谓是神器,各个细分的领域,都可以用 python 比较优雅的解决,关键是相比 c++等系统级语言,什么也不缺,线程、进程玩的飞起,面向对象函数里再用闭包封一层,多进程的调用不显山不漏水…… 关键是简单(这么说,有点装 x )

    116 条回复    2019-09-04 13:15:11 +08:00
    1  2  
    ycz0926
        1
    ycz0926  
    OP
       2018-03-15 14:45:37 +08:00
    common lisp 里推荐用 func 结合闭包来实现 oop ( on lisp 的前几章说道了这个问题)
    lllllllllllllll
        2
    lllllllllllllll  
       2018-03-15 14:48:14 +08:00
    只要图灵完备,理论上任何语言都能通吃,任何语言 /框架归根到底就是封装系统调用!
    chenqh
        3
    chenqh  
       2018-03-15 14:48:54 +08:00 via iPhone
    那有怎么样? web 还是找不到工作
    tscat
        4
    tscat  
       2018-03-15 14:52:37 +08:00
    汇编表示压力不大
    CSM
        5
    CSM  
       2018-03-15 14:57:36 +08:00 via Android
    我再加一条,上 Type Hint 后当 Java 写
    doubleflower
        6
    doubleflower  
       2018-03-15 14:58:20 +08:00   ❤️ 5
    用 js 岂不是可以通吃前后端更好?
    lany
        7
    lany  
       2018-03-15 15:02:47 +08:00
    手写硬编码表示还能坚持
    night98
        8
    night98  
       2018-03-15 15:06:07 +08:00
    项目大了你来维护?
    oyjc
        9
    oyjc  
       2018-03-15 15:18:42 +08:00
    GIL + 火葬场
    bearsiji
        10
    bearsiji  
       2018-03-15 15:20:32 +08:00
    主要因为“简单”吧(那是没碰到坑)
    whwq2012
        11
    whwq2012  
       2018-03-15 15:20:47 +08:00 via Android
    所以说性能怎么样呢
    est
        12
    est  
       2018-03-15 15:22:52 +08:00
    呃,似乎所有语言都能通杀。。。

    实在不行启外部进程。。。
    lihongjie0209
        13
    lihongjie0209  
       2018-03-15 15:29:59 +08:00
    动态语言别想了, 连编译期安全都没有
    nicevar
        14
    nicevar  
       2018-03-15 15:36:47 +08:00   ❤️ 3
    很多公司喜欢 java 系不是没有原因的,毕竟能接盘的多,而 python 精通的人少,选择技术方向一定要谨慎,如果是半桶水图个爽,业务上去了遇到瓶颈解决不了,这个时期再起点矛盾然后技术人员跑路了。。。老板哭死,接手的人又不好找
    MonoLogueChi
        15
    MonoLogueChi  
       2018-03-15 15:42:03 +08:00 via Android
    能用不代表用的好,项目做大了 py 压不住,就要加机器,机器多了又会有新麻烦
    subpo
        16
    subpo  
       2018-03-15 15:43:28 +08:00
    js 可以通杀整个世界
    codeeer
        17
    codeeer  
       2018-03-15 15:44:33 +08:00 via iPhone
    最神的是,py 用来写 serverless 简直很优美
    mengzhuo
        18
    mengzhuo  
       2018-03-15 15:45:37 +08:00
    php 才是最高
    maemual
        19
    maemual  
       2018-03-15 15:49:25 +08:00
    感觉 Python -> Java 也一样描述。
    gamecreating
        20
    gamecreating  
       2018-03-15 15:51:04 +08:00
    你想多了
    ycz0926
        21
    ycz0926  
    OP
       2018-03-15 15:55:56 +08:00
    是么?
    模板、api
    爬虫
    数据挖掘
    深度学习
    图像处理
    运维
    ……
    中间件也有对应的解决方案,虽然不一定最强悍,但至少在 python 的代码链上,是没什么问题的
    哪一种语言,可以涉及的如此之广呢?
    zhangchioulin
        22
    zhangchioulin  
       2018-03-15 15:59:15 +08:00   ❤️ 1
    Python 换成 C# 感觉也不错。
    ycz0926
        23
    ycz0926  
    OP
       2018-03-15 16:03:33 +08:00
    @ycz0926 就连科学计算,也有 SciPy & NumPy
    yoke123
        24
    yoke123  
       2018-03-15 16:04:29 +08:00   ❤️ 4
    你膨胀了
    ZoomQuiet
        25
    ZoomQuiet  
       2018-03-15 16:04:45 +08:00
    是也乎,( ̄▽ ̄)
    后端的条件得追加上 Linux-style 环境...

    在 windows 的世界中, Py 还是有点水土不服的
    ycz0926
        26
    ycz0926  
    OP
       2018-03-15 16:06:14 +08:00
    @yoke123 哈哈,可能是这两天有点闲
    diggerdu
        27
    diggerdu  
       2018-03-15 16:06:31 +08:00 via iPhone
    能用不代表好用
    —— 一个只会 python 的人留
    feverzsj
        28
    feverzsj  
       2018-03-15 16:06:40 +08:00
    小型项目还能应付,中型就开始不行了
    logOo
        29
    logOo  
       2018-03-15 16:09:09 +08:00 via Android
    所以你和谁 py 了
    justinwu
        30
    justinwu  
       2018-03-15 16:12:47 +08:00 via iPhone
    python.com 上面学的 python 吧,意淫多了也伤身
    laqow
        31
    laqow  
       2018-03-15 16:13:53 +08:00 via Android
    python 上境界还是 C 啊,不然性能摆在那里
    lbp0200
        32
    lbp0200  
       2018-03-15 16:19:10 +08:00
    那又怎么样?在中国招不到人,你能处理百万并发吗?
    除非你自己做老板
    hasbug
        33
    hasbug  
       2018-03-15 16:30:27 +08:00
    想骗我学 python ?
    raphaelsoul
        34
    raphaelsoul  
       2018-03-15 16:42:07 +08:00
    那有怎么样? web 还是找不到工作
    skywingfs
        35
    skywingfs  
       2018-03-15 16:44:24 +08:00
    只用 python 写写爬虫。。其他的用的不多,web 还是没有 php 好用。
    scukmh
        36
    scukmh  
       2018-03-15 16:48:12 +08:00 via Android   ❤️ 1
    整天在这争论语言的优劣,真 tm 无聊,不能多写两行代码吗?
    tgxh
        37
    tgxh  
       2018-03-15 16:49:49 +08:00
    用 js 岂不是更美滋滋,别说前后端通吃,写客户端移动 APP 小程序深度学习巴拉巴拉都可以,我听说还能写 OS ?
    slt
        38
    slt  
       2018-03-15 16:53:20 +08:00
    因为 Ubuntu 内置了 python,所以用了几次
    slt
        39
    slt  
       2018-03-15 16:54:43 +08:00
    确实是标题党,标的还挺骚气
    鉴定完毕,O(∩_∩)O 哈哈~
    zarte
        40
    zarte  
       2018-03-15 17:10:15 +08:00
    版本不兼容,还有引用的包管理,就不是特别好了。我站 go
    ycz0926
        41
    ycz0926  
    OP
       2018-03-15 17:45:01 +08:00
    @lbp0200 有 jvm 就是好啊,说话都这么硬气
    ycz0926
        42
    ycz0926  
    OP
       2018-03-15 17:46:05 +08:00
    @scukmh 还好吧,总比开个贴说 php 是最好的语言来的争议少:-D
    ycz0926
        43
    ycz0926  
    OP
       2018-03-15 17:47:02 +08:00
    @zarte 其实有些怀疑你生产环境上用没用过 py
    awesomes
        44
    awesomes  
       2018-03-15 17:53:20 +08:00
    php 似乎可以通杀整个后端领域
    java 似乎可以通杀整个后端领域

    JS 似乎可以通杀整个前端和后端领域
    gabon
        45
    gabon  
       2018-03-15 17:56:18 +08:00 via Android
    @ycz0926 说了一堆你到底懂几个,调用其它语言 API 也算吗
    ycz0926
        46
    ycz0926  
    OP
       2018-03-15 18:21:47 +08:00
    @gabon 尼玛,又不是来炫技的,就交流点体会,怎么不问你自己懂几个呢
    你可以开个贴说你自己最牛逼,或者说 xx 最牛逼,没人说你呀
    ycz0926
        47
    ycz0926  
    OP
       2018-03-15 18:22:29 +08:00
    @gabon 真说调 api,你又能玩到哪一层呢?
    ycz0926
        48
    ycz0926  
    OP
       2018-03-15 18:23:20 +08:00
    @gabon 别代码没写几行,就跟着乱喷
    johnniang
        49
    johnniang  
       2018-03-15 18:25:27 +08:00 via Android
    请考虑后期维护
    glues
        50
    glues  
       2018-03-15 18:33:20 +08:00
    py 除了在机器学习领域库比较多之外,在其他领域都是半吊子水平
    wekw
        51
    wekw  
       2018-03-15 18:44:50 +08:00
    对于创业公司来说,选择 Python 等于招不到人。
    Weixiao0725
        52
    Weixiao0725  
       2018-03-15 19:07:52 +08:00
    印象中国外一些大型的网站像 ins 也用 python 做,也能扛得住。上次 QCon 听他的分享,怎么优化 ptyhon。关键人家工程师牛啊,大不了一些性能关键处,人家直接用 C 改写。
    popbones
        53
    popbones  
       2018-03-15 19:26:13 +08:00 via iPhone
    python 就是启原型容易,虽然也可以写比较稳定的程序不过到那种程度很多也是因为重构的成本和维护的成本一样高所以也就继续用下去了。比如我厂大部分是 python,五年三代班子,各种黑魔法没人搞得清楚,无数的函数的参数表就一个(*args, **kwargs),改一个代码 10 分钟,测试两个小时。不过我厂现在还是重构成本比维护成本高,不过新的微服务后端都是 golang 了
    Eds1995
        54
    Eds1995  
       2018-03-15 19:34:21 +08:00 via Android
    @oyjc 为什么总是拿着 GIL 不放?web 后端领域就没有很复杂的计算,python 后端瓶颈不在 GIL.
    cuebyte
        55
    cuebyte  
       2018-03-15 19:36:34 +08:00
    樓主的標題真是搞笑,後端語言不能通殺後端那還算合格麼?(對,我就是在嘲諷 php

    從性能上來說,python 不合格。
    albertofwb
        56
    albertofwb  
       2018-03-15 19:39:41 +08:00 via Android
    我与楼主的感受是一致,这种感受源于对大蟒蛇深深的热爱。
    dexterzzz
        57
    dexterzzz  
       2018-03-15 20:19:16 +08:00
    知道 SAP,Oracle,Microsoft3 大 ERP 后端🙃
    male110
        58
    male110  
       2018-03-15 20:22:46 +08:00
    不是说多线程不是真的多线程吗?
    xpresslink
        59
    xpresslink  
       2018-03-15 20:47:43 +08:00
    是啊,我用 javascript 写硬件驱动好几年了,现在想改做前端,打算用汇编,大家推荐个上手快点的框架。
    fghjghf
        60
    fghjghf  
       2018-03-15 20:48:34 +08:00
    只要图灵完备,理论上任何语言都能通吃,任何语言 /框架归根到底就是封装系统调用!
    gbin
        61
    gbin  
       2018-03-15 20:49:14 +08:00 via Android
    用 C 岂不是可以再造几门高级语言?
    Keyes
        62
    Keyes  
       2018-03-15 20:54:38 +08:00 via iPhone
    @male110 线程还是那个线程,就是 gil 把他们坑了一下
    oooovvssdsx
        63
    oooovvssdsx  
       2018-03-15 20:54:51 +08:00
    以前觉得 python 这种弱类型的语言很好用,但是现在觉得 java 的强校验也非常好,能在编译时候规避很多运行时错误,python 适合早期开发,一旦项目大起来,调试难度颇大。
    ycz0926
        64
    ycz0926  
    OP
       2018-03-15 22:22:14 +08:00
    @albertofwb 赞一个 😄
    ycz0926
        65
    ycz0926  
    OP
       2018-03-15 22:23:55 +08:00
    @xpresslink 你牛,是不是玩板子玩懵了 😜
    ray1888
        66
    ray1888  
       2018-03-15 22:41:14 +08:00 via Android
    如果要谈代码质量,python 对程序员的要求更高(测试太重要了,对于这种没有类型的语言要产出高质量的代码),虽然是写 python 为主,但是并没有楼主这种感觉。但是如果用来快速是想法的实现是真的很棒
    willakira
        67
    willakira  
       2018-03-15 23:29:50 +08:00
    线程玩的飞起? GIL 有多坑就不说了… 老老实实用 multiprocessing 做多线程提高 IO 性能吧

    顺便别引战,一个业务有一个业务的语言
    百万行级的代码,我就宁愿写 strong type 的语言而不是各种加 docstring
    小一些的程序需要处理一下数据,python 无疑会比 java 更加好。
    angelshq
        68
    angelshq  
       2018-03-15 23:32:28 +08:00
    JS 通杀前端、后端、桌面、移动。😎
    binux
        69
    binux  
       2018-03-15 23:35:44 +08:00   ❤️ 1
    v2 怎么来了这么一批人,一会吹 jquery 的,一会吹 python 的
    wengjin456123
        70
    wengjin456123  
       2018-03-15 23:53:21 +08:00 via Android
    @tgxh 小姐姐藏剑山庄的吗,在下苍云
    Jackeriss
        71
    Jackeriss  
       2018-03-16 00:05:09 +08:00 via iPhone
    这样的讨论有什么意义呢?
    ycz0926
        72
    ycz0926  
    OP
       2018-03-16 08:46:57 +08:00 via iPhone
    @binux 没吹嘘吧,这两个确实是优秀的项目
    mougua
        73
    mougua  
       2018-03-16 09:16:22 +08:00
    PHP 是世界上最好的语言~
    dilu
        74
    dilu  
       2018-03-16 09:35:44 +08:00
    Python 最近再看 表示真的挺不错

    但是问题来了 企业需要的是能干活的人 不管技术不技术的

    今天我招了一个 Python 他的代码全是 Python 的 然后他辞职了

    我再去市场招人 发现做 Web 的 20 个人里面 有 15 个是 PHP 两个是 Java 一个是 Python 一个是 Ruby 还有一个是别的语言(C#之类 并没有贬低别的语言 只是个比喻)

    那你说我作为一个公司的老板我要怎么选?
    SergeGao
        75
    SergeGao  
       2018-03-16 09:40:33 +08:00
    如果跟 node 比呢?想听下大神的意见..
    Linxing
        76
    Linxing  
       2018-03-16 09:48:09 +08:00
    @feverzsj INSTA 是小项目?
    MapleObserver
        77
    MapleObserver  
       2018-03-16 09:56:58 +08:00
    虽然常用 Python,没用 Go,但是感觉已经听到 Go 童鞋露出了一丝不失礼貌的微笑……当然,PHP 才是坠吼的!
    jhdxr
        78
    jhdxr  
       2018-03-16 09:59:31 +08:00   ❤️ 1
    发和赞同这种帖子的一般要么是只会 Python 的,要么就是以 Python 为绝对主力都没有拿其他语言做过实际项目的。。。
    Tinet
        79
    Tinet  
       2018-03-16 10:04:31 +08:00
    python 里面玩线程不好玩吧
    eslizn
        80
    eslizn  
       2018-03-16 10:06:24 +08:00
    c10k 了解一下?
    MushishiXian
        81
    MushishiXian  
       2018-03-16 10:19:51 +08:00
    万金油难道就好么...
    marcushbs
        82
    marcushbs  
       2018-03-16 11:01:56 +08:00
    python 的确很普适,就一个问题:和 rails 里 active record 对应的 python 库有哪些选择?
    zhangsen1992
        83
    zhangsen1992  
       2018-03-16 11:21:36 +08:00
    就会给 py 招黑!等你 java c py 都用了几年再说吧
    onepunch
        84
    onepunch  
       2018-03-16 11:28:00 +08:00
    通杀后端领域?我没看错吧 ,apache、nginx、数据库、各种中间件,哪一个是 py 写的? 引战贴鉴定完毕
    Felldeadbird
        85
    Felldeadbird  
       2018-03-16 11:38:34 +08:00
    问题招不到人。
    JerryCha
        86
    JerryCha  
       2018-03-16 11:44:27 +08:00
    pacoyang
        87
    pacoyang  
       2018-03-16 12:36:11 +08:00
    招黑贴。楼上也是怎么揪着 GIL 不放,一直以来都有很多方法绕开 GIL,而且 Py3 对 GIL 的问题也算有改善。
    ycz0926
        88
    ycz0926  
    OP
       2018-03-16 13:00:31 +08:00 via iPhone
    @marcushbs orator
    clarkchen
        89
    clarkchen  
       2018-03-16 13:02:48 +08:00
    一些简单的业务场景是能刚得住的
    byteli
        90
    byteli  
       2018-03-16 13:04:06 +08:00 via iPhone
    @popbones 请问你们 golang 后端裸写还是自研一套框架
    murmur
        91
    murmur  
       2018-03-16 13:04:26 +08:00
    py 的优点是调 dll 比较简单不像 java 要各种写 jni
    但是呢
    ??嗯??
    popbones
        92
    popbones  
       2018-03-16 13:55:13 +08:00 via iPhone
    @byteli 目前就是一些 web 的就是连 redis 做个数据预处理然后 dispatch 到 celery 给 python stack。还有就是一些数据库同步的 daemon,基本都是用的标准库+一些小库,没用框架。数据同步用了 rachet,不过打了自己的 patch 加了 json stats 到 aws
    vimiix
        93
    vimiix  
       2018-03-16 13:55:15 +08:00
    面向动态对象编程,只有用的时候才知道你的对象是谁😏
    chenyu0532
        94
    chenyu0532  
       2018-03-16 14:02:39 +08:00
    python 是后端的爸爸,那 js 是啥。。全端的爷爷!
    Flobit
        95
    Flobit  
       2018-03-16 14:36:42 +08:00 via Android
    python 是胶水语言,
    hobochen
        96
    hobochen  
       2018-03-16 14:47:44 +08:00
    差点以为自己穿越到了三年前
    楼主醒醒啦 Node 的 LTS 都已经发布到 8.x 啦!
    ycz0926
        97
    ycz0926  
    OP
       2018-03-16 15:52:39 +08:00 via iPhone
    @byteli 写 api 可以裸写,但写结构体有点痛苦
    ycz0926
        98
    ycz0926  
    OP
       2018-03-16 15:53:55 +08:00 via iPhone
    @jhdxr are u sure
    ycz0926
        99
    ycz0926  
    OP
       2018-03-16 15:55:29 +08:00 via iPhone
    @jhdxr 有一点倒是确实的,我们公司现在做的东西,只提供 py,c++和 lisp 的 api
    HangoX
        100
    HangoX  
       2018-03-16 16:17:29 +08:00 via Android
    创业的确是,人多就蛋疼了
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1126 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:44 · PVG 06:44 · LAX 14:44 · JFK 17:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.