推荐学习书目
› 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
herozem
V2EX  ›  Python

中了 Python 的毒

  •  
  •   herozem · Mar 13, 2018 · 10808 views
    This topic created in 3158 days ago, the information mentioned may be changed or developed.

    最近开始用 Go 拆分原有的单体应用。单体应用是用 Python 写的。

    感受:写惯了 Python 真的不想写 Go 了。。。。Java ?更不想写了

    Go 写 proxy 这类与具体业务无关的还是挺爽的。

    Supplement 1  ·  Mar 13, 2018
    哈哈哈,好像又引发了语言大战
    73 replies  •  2018-03-14 19:01:49 +08:00
    l1093178
    l1093178
    Mar 13, 2018
    1
    毕竟 Golang 渣渣抽象能力,就没几个好用的轮子
    orangeade
    orangeade
    Mar 13, 2018 via Android
    2
    写 Kotlin ?
    gs139
    gs139
    Mar 13, 2018
    3
    Golang 把残缺说成精炼
    ostholz
    ostholz
    Mar 13, 2018
    4
    @orangeade
    Kotlin 真心舒服, 可能是跟 Swift 很相近吧, 写起了很舒心.
    Java? 看都不爱看一眼
    gamexg
    gamexg
    Mar 13, 2018
    5
    python 怎么解决重构的问题?
    项目比较大的时候改一个结构真的不知道会影响多少地方...
    之后就觉得还是编译型的比较舒服,至少编译时就会报错,而不是运行时挂掉。

    当然测试只覆盖了主要流程,一些非重要的没覆盖。
    ila
    ila
    Mar 13, 2018 via Android
    6
    @gamexg django 和 flask 的蓝图都是解决之道
    amaranthf
    amaranthf
    Mar 13, 2018❤️3
    7
    写 python,写的时候确实比 go 要舒服。
    但是……写 go,可能写 300 行,然后运行,一遍过;写 python,写 100 行,可能要调 3 次,有 2 次运行异常,1 次运行结果不正确……
    gs139
    gs139
    Mar 13, 2018
    8
    @gamexg 编译型写起来是比较有安全感,但同时失去了灵活性,动态语言两三行代码就完成的事,编译型的可能得写好几个类。 鱼与熊掌不可兼得吧。
    huclengyue
    huclengyue
    Mar 13, 2018 via Android
    9
    @ostholz 不能同意更多。。
    qfdk
    qfdk
    PRO
    Mar 13, 2018 via iPhone
    10
    python 全是坑 版本各种不兼容 极力鄙视 非科班最爱; go 那玩意儿编译出来错都不知道咋错的 语法不喜欢....; js 还好 明白了原理 npm 还是好用
    simple2025
    simple2025
    Mar 13, 2018 via iPhone
    11
    @qfdk python 可以用 py2 呀,总比 nodejs 到处锁版本好吧
    qfdk
    qfdk
    PRO
    Mar 13, 2018 via iPhone
    12
    @chenqh #11 macos 现在自带就是 3 了…… 我同事为了改版本 居然把系统库删了换 结果悲剧了…… node 只要不是 ubuntu 源的 0.10 几乎没啥压力 npm i n -g ; n latest 不解释
    simple2025
    simple2025
    Mar 13, 2018 via iPhone
    13
    @qfdk 233
    l1093178
    l1093178
    Mar 13, 2018❤️2
    14
    @amaranthf 不写单元测试那谁都没办法 (就算是静态语言不写单元测试你也很难保证没有逻辑 bug
    lhx2008
    lhx2008
    Mar 13, 2018
    15
    感觉还是写静态语言舒服,按接口写实现就好了,IDE 直接把文档糊你脸上,也不用操心各种神奇的返回值。
    shiroming
    shiroming
    Mar 13, 2018 via Android
    16
    @qfdk 有 pyenv。。。。
    qfdk
    qfdk
    PRO
    Mar 13, 2018
    17
    @shiroming 这玩意倒是知道。。好像还有个 virtualenv 啥玩意儿的。 但是也是够恶心的。
    还有的问题就是 linux server 上面 没有 LC_ALL 设置也会报错 摊手。
    作为一个普通的用户来说 我不需要这么复杂的玩意儿。 日常看到 有 python 写的开源项目宁可造轮子也不拿来折腾自己
    lightening
    lightening
    Mar 13, 2018
    18
    要不楼主试试 Ruby ?
    Osk
    Osk
    Mar 13, 2018 via Android
    19
    动态一时爽。。。

    我现在写 python 都尽量把 type hints 加上,然而,python 3.5 以下的居然不支持,2333
    pabupa
    pabupa
    Mar 13, 2018
    20
    @Osk 不是我要喷你,是我非要喷你,,,,,动态怎么了??你遇到什么了???第二句话什么意义????
    likuku
    likuku
    Mar 13, 2018
    21
    @gamexg 严格单元测试覆盖,py 重构也不难
    likuku
    likuku
    Mar 13, 2018
    22
    @qfdk pyenv + virtualenv 不要太方便了,py3 已经自带了 virtualenv 功能,没必要为了个版本问题就动用 docker
    kikyous
    kikyous
    Mar 13, 2018❤️2
    23
    python 的依赖管理真的屎一样
    Paddington
    Paddington
    Mar 13, 2018
    24
    @kikyous 也没那么烂啦。有哪点是很想吐槽的么,我帮你看看现有的方案?
    shiroming
    shiroming
    Mar 13, 2018 via Android
    25
    @qfdk 没觉的有啥恶心,pyenv 管理 python 版本,virtualenv 创建虚环境隔离系统已安装的包,妥妥的
    kikyous
    kikyous
    Mar 13, 2018 via Android❤️1
    26
    @Paddington 你用过 ruby 的 bundler 吗?我感觉 ruby 处处都体现优雅

    python 的包管理据我所知都是基于虚拟环境的,把解释器和包放在一个指定的地方,先不说包和解释器不能共享的问题,就是每次都要激活一下虚拟环境就很烦

    而且一大堆工具 virtualenv, virtualenvwrapper, pipenv 但没一个真正好用的,python 在很多方面都是如此,解决方案一大堆,没一个顶用的,就像 web 框架一大堆,没一个能和 rails 有一战之力的
    justfortest
    justfortest
    Mar 13, 2018
    27
    要不试试 ruby ?噫?传进来的是什么东西?这个第三方库文档怎么没有提到这个方法?看源码是,ctrl+鼠标.....你是跳转到定义啊?黑人问号。。。
    di94sh
    di94sh
    Mar 13, 2018
    28
    @kikyous pipenv 了解一下..
    gs139
    gs139
    Mar 13, 2018
    29
    曾经为了用 C#解析一个结构复杂的 json,写了一大堆类,差点累到吐血。然而用 php 只需要一个 json_decode 函数。😌

    各有各的好处,不能光看到静态语言的好,却看不到动态语言的好。至于重构?我接的私活有重构的需求吗?
    ZoomQuiet
    ZoomQuiet
    Mar 13, 2018
    30
    是也乎,( ̄▽ ̄)
    PHP 是最好的语言...

    这时, 写点儿 PHP ,你就会从内心愿意写 go 了
    cuebyte
    cuebyte
    Mar 13, 2018
    31
    go 的抽象力都不如 java,樓主你真的寫過 java?
    southwolf
    southwolf
    Mar 13, 2018
    32
    @ZoomQuiet 活捉一只大妈……话说大妈不是 py 吹么 23333
    Paddington
    Paddington
    Mar 13, 2018
    33
    @kikyous 好吧,对于你的回复我保持沉默,纯为喷而喷。
    congeec
    congeec
    Mar 13, 2018 via iPhone
    34
    @gamexg typing
    justinwu
    justinwu
    Mar 14, 2018
    36
    @gs139 C#有 dynamic 啊
    popbones
    popbones
    Mar 14, 2018
    37
    取决于你想花更多时间写代码还是跟多时间修 BUG🤣
    xiaket
    xiaket
    Mar 14, 2018
    38
    @southwolf 大妈这明显是在黑 PHP 啊...
    parkcg
    parkcg
    Mar 14, 2018 via iPhone
    39
    有没有强静态解释型开发语言,谁知道的话推荐下
    BlockBlockBlock
    BlockBlockBlock
    Mar 14, 2018 via iPhone❤️3
    40
    没人提 typescript 嘛?

    动态语言搭配强类型,继承 js 所有动态特性,有强类型重构不会火葬场,还有软爹支持。
    araraloren
    araraloren
    Mar 14, 2018
    41
    @parkcg Perl6 ? gradual typing system
    tylerdurden
    tylerdurden
    Mar 14, 2018
    42
    作为安全工程师想进来洋洋洒洒的发表的观点,一件来才发现自己需要提高下语文水平。
    mikicomo
    mikicomo
    Mar 14, 2018 via Android
    43
    @qfdk 最新版 mac 还是 py2
    anubiskong
    anubiskong
    Mar 14, 2018
    44
    有没有试过 JS 啊~?
    toono
    toono
    Mar 14, 2018
    45
    @kikyous 那是因为你还用惯 pipenv😂,用起来跟用过的 cocoapods 体验差不多
    sagaxu
    sagaxu
    Mar 14, 2018 via Android❤️1
    46
    php 才是醉猴的语言
    archknight
    archknight
    Mar 14, 2018❤️1
    47
    又是一轮语言大战。。。
    parkcg
    parkcg
    Mar 14, 2018
    48
    @araraloren perl6 有点古老,目前主要使用 c# 和 php。
    gouchaoer
    gouchaoer
    Mar 14, 2018 via Android
    49
    php 最近也 tm 开始不兼容了,神烦
    OMGZui
    OMGZui
    Mar 14, 2018
    50
    @gouchaoer 哪里看的?
    gouchaoer
    gouchaoer
    Mar 14, 2018 via Android
    51
    araraloren
    araraloren
    Mar 14, 2018
    52
    @parkcg ... but the first stable release of Perl6 is at 2015 , and I like it

    sub foo($a) { } // accept any type

    sub foo(Str $a) { } // type constraint, will do static type checking

    sub foo($a where { * ~~ Int | Str }) { } // type constraint block
    JerseyCafe
    JerseyCafe
    Mar 14, 2018
    53
    静观其变-.-
    CommandZi
    CommandZi
    Mar 14, 2018
    54
    我投 Swift 一票,只是哀其不争(至少目前是的)。
    hotReady
    hotReady
    Mar 14, 2018
    55
    我是 Python,别爱我,你是得不到我的,哼
    wellsc
    wellsc
    Mar 14, 2018 via iPhone
    56
    单体应用有多大?超过 20 万行代码了嘛
    est
    est
    Mar 14, 2018❤️1
    57
    本来不想水这个帖子的看到 zq 大妈都来水了那我也赶紧水一发。

    用静态强类型语言没遇到运行时错误的,那是因为你的项目还不足够复杂。Golang 就只写个 RPC API 还能出错?

    任何足够复杂的项目都隐藏了一个 lisp 解释器实现——鲁迅。
    jhdxr
    jhdxr
    Mar 14, 2018
    58
    @gouchaoer 你举的这个例子好像正好是 rfc 投票时全票通过的。。。我个人也很好奇
    ```
    count(5);
    count(null);
    $a=new StdClass;
    count($a);
    ```
    这几种 count 的用法有什么含义。。。
    gouchaoer
    gouchaoer
    Mar 14, 2018
    59
    @jhdxr 脚本语言就是这样的,如果你要精确我干嘛不去用 java ?
    lbp0200
    lbp0200
    Mar 14, 2018
    60
    @est +1
    SuperMild
    SuperMild
    Mar 14, 2018
    61
    Python 环境管理用 miniconda 就很好,既可以多个项目共用一个环境,有特别需要的项目又可以独立一个环境,使用方法又很简单直观。
    wupher
    wupher
    Mar 14, 2018
    62
    最近也开始写 Kotlin,确实太像 Swift 了,虽然没有 guard,不过也可以自己封装一个。

    可能骨子里还是最喜欢 Ruby,我还是更喜欢 Ruby 与 groovy。

    之前的代码大多以 groovy 编写,Java 是不想再碰了。
    keenkiller
    keenkiller
    Mar 14, 2018
    63
    pipenv 很好用啊,我不太喜欢 go,kotlin 和 swift 都很棒
    strive
    strive
    Mar 14, 2018
    64
    @gouchaoer 感觉 php 正在往静态语言靠
    deadEgg
    deadEgg
    Mar 14, 2018
    65
    @kikyous virtualenv 好用的很
    deadEgg
    deadEgg
    Mar 14, 2018
    66
    @kikyous “解决方案一大堆,没一个顶用的”,没黑到点啊。干直白这么说不是胡吹八吹?理由呢
    l1093178
    l1093178
    Mar 14, 2018
    67
    @est Rust 的话,不用 unsafe 不用 unwrap panic 应该基本上能够避免运行时错误了(当然逻辑错误免不了
    Henry001
    Henry001
    Mar 14, 2018
    68
    PHP 是最好的语言...
    ray1888
    ray1888
    Mar 14, 2018
    69
    现在是根据需求去写各种语言,还是感觉这样比较好
    mornlight
    mornlight
    Mar 14, 2018
    71
    和你相反,现在更愿意写 Go 不愿意写 Python 了
    herozem
    herozem
    OP
    Mar 14, 2018
    72
    @mornlight RPC 还好,解析 JSON 解析的心情都不好了
    ZoomQuiet
    ZoomQuiet
    Mar 14, 2018 via iPhone
    73
    @southwolf 是也乎 ╮(╯▽╰)╭

    #PHP 是最好的语言#

    就是我辈 Pythoneer 的共识啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊…

    PHP 好到无法忍受了啊啊啊啊啊啊啊啊

    只有肥到 Pythonic 世界…老老实实在在的搬砖~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4848 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 155ms · UTC 07:58 · PVG 15:58 · LAX 23:58 · JFK 02:58
    ♥ Do have faith in what you're doing.