• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gamegrd
V2EX  ›  程序员

看到 GO 这么火,打算学一下,但是文档看到这一句我立即弃坑了。。。

  •  
  •   gamegrd · Jun 8, 2017 · 31755 views
    This topic created in 3436 days ago, the information mentioned may be changed or developed.
    Go 和 Python 在一般开发的平均水平测试中,Go 要比 Python 3 快 25 倍左右,少占用三分之二的内存,但比 Python 大概多写一倍的代码(详见引用 27 )。


    要多撸一倍的代码。。。额滴个神啊
    170 replies  •  2019-08-02 23:36:16 +08:00
    1  2  
    ❮ ❯
    leyle
    leyle
    Jun 8, 2017 via iPhone
    1
    直接上手就是干!

    代码量确实多了很多。
    orderc
    orderc
    Jun 8, 2017 via iPhone
    2
    这也算放弃的理由?
    laxenade
    laxenade
    Jun 8, 2017 via Android❤️5
    3
    你的好友 Java 已上线并表示不服
    gamegrd
    gamegrd
    OP
    Jun 8, 2017❤️8
    4
    难怪有个梗是对于一个需求,java 的程序员在写配置的时候,go 程序员已经写了大部分代码,但是当 java 的程序员写完的时候,go 程序员还在写 err != nil。
    fyibmsd
    fyibmsd
    Jun 8, 2017
    5
    那 java 和 oc 你更不会学了
    gamegrd
    gamegrd
    OP
    Jun 8, 2017❤️2
    6
    任何要多写代码的新语言都是耍流氓,科技应该让人更轻松,而不是更累
    cashew
    cashew
    Jun 8, 2017
    7
    才多一倍你就放弃了?这很 JAVA。。。
    gamegrd
    gamegrd
    OP
    Jun 8, 2017
    8
    @fyibmsd 恰好这俩我都会。。。只不过学了 python 后就变懒了
    gamegrd
    gamegrd
    OP
    Jun 8, 2017
    9
    @cashew 多一陪。。。 人生最宝贵的就是时间。。多一倍完全没有办法接受啊
    Weixiao0725
    Weixiao0725
    Jun 8, 2017❤️3
    10
    那你还是别搞计算机了
    zhsj
    zhsj
    Jun 8, 2017 via Android
    11
    python 大法好
    zysidea
    zysidea
    Jun 8, 2017 via Android
    12
    这么说,你只适合写 py
    gamegrd
    gamegrd
    OP
    Jun 8, 2017
    13
    @zysidea 一直在寻求比 python 编写效率更高的语言。。。最好能别人一天的工作量,新语言 10 分钟就完成
    zhujinliang
    zhujinliang
    Jun 8, 2017
    14
    键盘很贵么
    nomoon
    nomoon
    Jun 8, 2017
    15
    python 的多线程。。。>_>
    timothyye
    timothyye
    Jun 8, 2017 via Android
    16
    现在全职 go 开发,也写过 py
    py 感觉代码确实写起来简洁
    weer0026
    weer0026
    Jun 8, 2017
    17
    多一倍代码就能把一个高并发接口的速度提上去已经够好了,简单无脑就是花点时间。
    bfbd
    bfbd
    Jun 8, 2017
    18
    Go 语言就是 Super C,是更好的 C++。
    yqf3139
    yqf3139
    Jun 8, 2017
    19
    之前看到过这个项目,但没有尝试过。Grumpy:Google 用 Go 开发的 Python 运行时
    tvallday
    tvallday
    Jun 8, 2017 via Android
    20
    程序员的代码量比当老板的多几十倍,我是否应该弃坑?
    bombless
    bombless
    Jun 8, 2017 via Android
    21
    go 其实是复制黏贴的多,也没必要被吓到
    jeffersonpig
    jeffersonpig
    Jun 8, 2017
    22
    最好是出一种开发同样功能代码量比 python 还少一半但是性能又比 C 还好的新语言 23333
    tongtf
    tongtf
    Jun 8, 2017
    23
    @gamegrd 我能说 shell 吗?
    lwbjing
    lwbjing
    Jun 8, 2017
    24
    又想吃的少,又想跑的快,哪有那么好的事儿啊。。
    Immortal
    Immortal
    Jun 8, 2017
    25
    什么理由都想到了...就是没想到这个
    假设 25 倍性能是真的,多一倍开发时间换来节约 25 倍的运行时间,不是很赚么
    而且现在虽然我是全职 go,一些简单的脚本什么的也会用 shell php python 写,这个不冲突
    并不是写了 go 就不能写别的了
    scnace
    scnace
    Jun 8, 2017 via Android
    26
    严谨的错误处理有什么错?
    zts1993
    zts1993
    Jun 8, 2017
    27
    代码量 != 需要得时间

    相反静态强类型在未来重构和修改甚至调试得时候都会有更大得优势.....debug 时间也得算啊..
    zdt3476
    zdt3476
    Jun 8, 2017❤️3
    28
    然后 go 代码上线正常运行,python 还在处理各种运行时异常
    owenliang
    owenliang
    Jun 8, 2017 via Android
    29
    关键看能不能边拿薪水边学 go。
    Xrong
    Xrong
    Jun 8, 2017❤️2
    30
    个人觉得提高性能价值远高于 2 倍的代码量
    congeec
    congeec
    Jun 8, 2017
    31
    除了丰富的库,还不如用 C++
    owenliang
    owenliang
    Jun 8, 2017 via Android
    32
    @congeec 我也这么觉得
    RW667
    RW667
    Jun 8, 2017
    33
    方法名必需大写,表示从 JAVA 系转过来的人不能忍
    zoffy
    zoffy
    Jun 8, 2017
    34
    @gamegrd #13 别担心,人类也就剩下十年写代码的时间了
    clino
    clino
    Jun 8, 2017
    35
    静态语言和动态语言就不要比代码量了,性能和开发效率要有取舍,go 在开发效率上和其他静态语言比应该还是有优势的
    Kilerd
    Kilerd
    Jun 8, 2017 via iPhone
    36
    @RW667 主要是方法名这样才反人类 itLooksLikeThis
    Sapp
    Sapp
    Jun 8, 2017
    37
    @gamegrd 你可以看看 rails...
    mattx
    mattx
    Jun 8, 2017
    38
    这里应该没算上, python 不要使用括号吧?
    Unknwon
    Unknwon
    Jun 8, 2017
    39
    没别的意思。。我就觉得楼主没写过上万行非机器编译代码的项目吧?。。。重构起来你就知道多写几行救了你的命。
    nanjishidu
    nanjishidu
    Jun 8, 2017
    40
    你的大 python 难道没有引入了各种包。。。
    flyspace15
    flyspace15
    Jun 8, 2017
    41
    不能只看开发量,还要看维护量,python 开发起来可能多一倍,维护起来可能要多好几倍
    gesse
    gesse
    Jun 8, 2017
    42
    项目用什么语言你说了算?
    swors
    swors
    Jun 8, 2017
    43
    实际使用并没有这种感觉, 大家都不用外部库的情况下
    singlepig
    singlepig
    Jun 8, 2017
    44
    如果大家都会你所希望的新语言, 那你还有什么用?为什么不用别人要用你?
    配合补全工具,你实际敲的代码能多多少?只凭长短论好坏不觉得太武断了么?
    kopp123
    kopp123
    Jun 8, 2017❤️2
    45
    麻痹的。每次看到别人的代码我就火大。一大堆乱七八糟的英文单词,什么 interface,class 不懂他们写的什么。一个简单的功能就要码很多很多字,反观我的代码,看过了就是 mov ....,妈的写个程序还要学这么多英文单词你们烦不烦。对了我认识一位大神他都是只写数字的。
    mengzhuo
    mengzhuo
    Jun 8, 2017
    46
    动态一时爽,重构火葬场
    5 年 Python 开发经验告诉我的
    SuperMild
    SuperMild
    Jun 8, 2017
    47
    只说一点(楼上也有人提到过了),代码量 不等于 写代码的时间。

    写代码主要花时间的地方是思考而不是打字。
    Morriaty
    Morriaty
    Jun 8, 2017
    48
    你要是写并发的代码,用 python 写的代码量和花的时间比 go 少一倍,我就佩服你 python 水平是真的高。

    非要纠结说 go 没有`[i for i in list1]`这种的简洁代码,那是你眼界低。
    CEBBCAT
    CEBBCAT
    Jun 8, 2017 via Android
    49
    同学,你快醒醒!单片机上跑不了 Python,还好可以汇编
    gaoyadianta
    gaoyadianta
    Jun 8, 2017
    50
    @kopp123 写单词也吐槽?应该就是这样的吧,用拼音也好过用数字吧,那什么大神写的代码别人都读不懂吧
    jarlyyn
    jarlyyn
    Jun 8, 2017 via Android
    51
    @gaoyadianta

    别人在说汇编吧……
    cloud107202
    cloud107202
    Jun 8, 2017❤️7
    52
    nws12304508
    nws12304508
    Jun 8, 2017
    53
    感觉工作量 不在于代码的多少啊
    gaoyadianta
    gaoyadianta
    Jun 8, 2017
    54
    @jarlyyn 额。。。好吧,mov,没想到会提到汇编
    feiyuanqiu
    feiyuanqiu
    Jun 8, 2017
    55
    @gaoyadianta 他在说 asm 的梗,另一位只写数字的是直接撸机器码
    zael
    zael
    Jun 8, 2017
    56
    @gamegrd #13 你也可以试试 kotlin
    janxin
    janxin
    Jun 8, 2017 via iPhone❤️1
    57
    @CEBBCAT 单片机上已经可以跑 python 了
    longxboy
    longxboy
    Jun 8, 2017
    58
    实际开发效率并不比 python 慢多少
    mooncakejs
    mooncakejs
    Jun 8, 2017
    59
    学了 python 是代码是变少了, 可是晚上也睡不好觉了,整天担心会不会跑出问题。
    x8
    x8
    Jun 8, 2017
    60
    多写一倍严谨的错误处理代码而已,你算算 python debug 的时间和 golang debug 的时间,再来考虑性价比
    whatTheGhost
    whatTheGhost
    Jun 8, 2017❤️1
    61
    @bfbd super C 没问题,更好的 C++就呵呵了。
    xjl
    xjl
    Jun 8, 2017
    62
    Python2 Python3 怎么没人提? Go 向下兼容
    SuperMild
    SuperMild
    Jun 8, 2017
    63
    @cloud107202 这个视频说得对,golang 语言本身学起来甚至比 python 更容易,运行效率又高。
    wangleineo
    wangleineo
    Jun 8, 2017
    64
    这只能说明 python 的简洁,其实 go 已经非常简洁了,当然除了错误处理。
    bk201
    bk201
    Jun 8, 2017
    65
    为什么要黑 java,你觉得多可以用 java 8 新特性,还多可以用 groovy 等等。
    beyoung
    beyoung
    Jun 8, 2017
    66
    只需要两倍的代码 能快 25 倍 你还想怎样 楼主?
    kinghui
    kinghui
    Jun 8, 2017
    67
    任何语言重构如果没有测试和测试覆盖率保证的话都是火葬场吧, 编译型语言能保证编译通过还能保证运行时没问题? 保证逻辑正常? 如果可以的话也就没有 NULL 造成十亿美元损失这一说了.
    goophy
    goophy
    Jun 8, 2017❤️2
    68
    反正自从用 go 以后,可以看懂别人的代码了  :)
    raptor
    raptor
    Jun 8, 2017
    69
    多一倍而已,想想 JAVA,至少多十倍
    CEBBCAT
    CEBBCAT
    Jun 8, 2017 via Android
    70
    @janxin 感谢指正

    诶妈,我得赶紧看看相关博客
    SourceMan
    SourceMan
    Jun 8, 2017
    71
    不要给自己找借口。
    坚持才是胜利
    jiangzhuo
    jiangzhuo
    Jun 8, 2017
    72
    对于按代码行数计价的来说,这是个好事啊
    owenliang
    owenliang
    Jun 8, 2017
    73
    公司不用,学来做啥?
    Ouyangan
    Ouyangan
    Jun 8, 2017
    74
    @goophy #68 同感 , 看很多 go 第三方库的源码感觉比 java 好懂一点 ,没那么模式 , 简单明了
    zzn
    zzn
    Jun 8, 2017
    75
    突然想起了之前有人喷 Golang 静态编译的问题,真是搞笑
    simo
    simo
    Jun 8, 2017
    76
    先了解下 go 主要应用的场景。
    在语言层面,要和 c/cpp 对比。
    反正个人很喜欢 go,协程和跨平台编译用起来非常顺手。
    另,语言只是工具,学什么问题不大,精通一门,其他的语言学起来很快的,可以快速解决问题。
    winglight2016
    winglight2016
    Jun 8, 2017
    77
    @RW667 没错,大写不能忍。。。
    gamexg
    gamexg
    Jun 8, 2017 via Android
    78
    主要是静态类型及 err。
    静态类型没办法,而且觉得是好处,静态类型的自动补全很牛。py 由于不是静态类型,重构时很坑。

    err 有用 ide 的话还好,直接打个 err 就能够自动补全 if err !=nil 等等。
    scofieldpeng
    scofieldpeng
    Jun 8, 2017
    79
    自从全职搞 golang 之后,心情爽多了,我还是喜欢强类型语言,虽然有时候类型转换是很麻烦
    cchange
    cchange
    Jun 8, 2017 via iPhone
    80
    @mengzhuo 愿闻其详
    sgissb1
    sgissb1
    Jun 8, 2017❤️3
    81
    lz,把我们 c、c++程序员放哪了?

    同样一个字符串处理的功能,其他语言或许只要一行代码就够,我们 c、c++的程序员这辈子估计都写不完(就算用上 stl 和 boost )
    SuperMild
    SuperMild
    Jun 8, 2017
    82
    @sgissb1 还是能写完的,只要用人类语言写一段格式要求发给用户 ( 233
    orvice
    orvice
    Jun 8, 2017
    83
    @gamegrd 多一倍代码 不代表多一倍时间。
    Limius
    Limius
    Jun 8, 2017
    84
    @gamegrd 多一倍代码不等同于多一倍时间。
    sgissb1
    sgissb1
    Jun 8, 2017
    85
    @SuperMild 你这是强规则。。。。。。要是弱规则,你写个试试。还有异常处理!
    gowk
    gowk
    Jun 8, 2017❤️3
    86
    又少了一个不合格的 Gopher,我表示很庆幸
    jjx
    jjx
    Jun 8, 2017 via iPhone
    87
    两个都在用,如果写企业软件,几倍吧,不是一倍,lz
    HarveyDent
    HarveyDent
    Jun 8, 2017
    88
    脚本小子
    Sin
    Sin
    Jun 8, 2017
    89
    前端程序员表示看完你们撕逼回去继续默默撸 js
    tiancaiamao
    tiancaiamao
    Jun 8, 2017❤️1
    90
    F#呀!
    如果你又想语言表达能力强,代码简短,又想要性能 。你需要的是一门**面向工程实践的函数式语言**。
    但是你学不会,所以就不安利 Haskell 了。

    语言的抽象程度高,表达能力强 -> 性能差 (lisp ruby python)
    语言接近汇编,性能强 -> 代码罗嗦 (c 汇编)
    语言的表达能力强,性能也不差 -> 学成成本高 (F# ocaml)
    语言简洁,性能不差,学习简单 -> 难道 Go 不是么???
    herozzm
    herozzm
    Jun 8, 2017 via Android
    91
    写了 go 之后,头发不掉了,自信心增强了,薪水也上来了
    mengzhuo
    mengzhuo
    Jun 8, 2017
    92
    @cchange
    比如 debug 发现猪队友往字符数组里传数字,关键是他为了方便,自己写的函数都不报错不输出,导致 API 传出了数字,客户端跪了。
    滥用 metaclass,不运行都不知道里面是什么
    还有最经典的,操作符重载,你知道发现+ 被重载成了别的函数时,那是相当崩溃(看代码才最后发现的)
    patr0nus
    patr0nus
    Jun 8, 2017
    93
    @bfbd 不太好这么比,定位还是有区别的。毕竟 Go 还需要 gc,想和 C/C++ 正面刚的貌似只有 Rust,它是宣称 zero-cost abstractions 的。
    linus3389
    linus3389
    Jun 8, 2017
    94
    她说的是编译时各种静态 lib 都带上为了能够 standalone 吧?

    现在硬盘这么便宜,这点体积真的需要担心?

    真要说代码量,人家 Java 默默不说话。
    gamegrd
    gamegrd
    OP
    Jun 8, 2017
    95
    @nomoon 加核 加内存加网络 堆硬件
    CRVV
    CRVV
    Jun 8, 2017
    96
    这个事取决于你要做什么东西,比如 ss 的代码,用 `wc -l ./**/*.go` 和 `wc -l ./**/*.py` 统计的结果是
    Go (5c6f652) 2841 行
    Python (d5026cf) 6682 行

    要多写 1.35 倍的代码
    BiuBiuBiuX
    BiuBiuBiuX
    Jun 8, 2017
    97
    @fyibmsd 额,OC 主要是方法名长。。。JAVA 是废话多。。。OC 用编译器提示,也不长
    patx
    patx
    Jun 8, 2017 via Android
    98
    改行不做程序员,完全不写代码
    araraloren
    araraloren
    Jun 8, 2017
    99
    @xjl
    python2 3 更像是两个语言,只是叫 python 而已,
    就像 perl5 6,两个语言版本差异很大,和传统的语言版本不一样
    araraloren
    araraloren
    Jun 8, 2017
    100
    @patr0nus rust 不 cost 计算机,cost 的是程序员的大脑

    @gamegrd 楼主尝试过 ruby perl 么,python 的哲学 写起代码来其实并不飘逸。。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1606 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 306ms · UTC 23:34 · PVG 07:34 · LAX 15:34 · JFK 18:34
    ♥ Do have faith in what you're doing.