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

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

  •  
  •   gamegrd · Jun 8, 2017 · 30932 views
    This topic created in 3310 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  
    dreamwar
        101
    dreamwar  
       Jun 8, 2017
    不学习的借口 get√
    a124553153
        102
    a124553153  
       Jun 8, 2017
    你 根本不懂,代码量多,学起来才简单吖,代码量少的其实隐藏了很多细节
    lzjamao
        103
    lzjamao  
       Jun 8, 2017
    从入门到放弃?
    lzjamao
        104
    lzjamao  
       Jun 8, 2017
    如果没十全十美的话。衡量下,性能和代码量多,好处远远大于坏处?
    wind3110991
        105
    wind3110991  
       Jun 8, 2017
    这位同学你可以走了,下一位面试者请进
    jtsai
        106
    jtsai  
       Jun 8, 2017 via Android
    @a124553153 然而我根本不想去管这些细节
    zzcchh
        107
    zzcchh  
       Jun 8, 2017
    有没有可能将一种语言转成另外一种语言的工具?
    junzki
        108
    junzki  
       Jun 8, 2017
    @zzcchh 听说有 BASIC -> Python 的工具。以及,WebAssembly 也算吧。
    xrlin
        109
    xrlin  
       Jun 8, 2017 via iPhone
    试一下 ruby,比 python 更飘逸,但是维护起来就痛苦了,特别是元编程用多了之后……
    chmlai
        110
    chmlai  
       Jun 8, 2017
    逻辑和数据流清晰, 代码量不大重要
    Mrink
        111
    Mrink  
       Jun 8, 2017
    @junzki 可以根据特定的功能以及固定规则的代码制作转换工具,想要通用的转化工具基本没可能
    qdwang
        112
    qdwang  
       Jun 8, 2017 via iPhone   ❤️ 1
    写代码必须算上 debug 时间 动态语言没 contract 的直接乘
    3 类似 js 这样的动态弱类型直接乘 6
    SuperMild
        113
    SuperMild  
       Jun 8, 2017
    竟然还要看文档才知道代码量比 python 多,看简介就知道 golang 是静态类型编译语言,你还能期待它比动态解析执行语言代码量少?
    iugo
        114
    iugo  
       Jun 8, 2017
    @cloud107202 视频地址...
    cloud107202
        115
    cloud107202  
       Jun 8, 2017   ❤️ 1
    @iugo
    &t=3052s ←_←
    chiu
        116
    chiu  
       Jun 8, 2017
    C++比 Python 多撸 10 倍的代码我都学了
    0asis
        117
    0asis  
       Jun 8, 2017
    其实现在好像性能瓶颈在语言上应用已经不多了吧
    gamegrd
        118
    gamegrd  
    OP
       Jun 8, 2017
    @chiu 从 Masm 入门,那东西 比 C++多撸 10 倍还不止......... 然后人总是越来越懒的
    gamegrd
        119
    gamegrd  
    OP
       Jun 8, 2017
    @gesse
    gamegrd
        120
    gamegrd  
    OP
       Jun 8, 2017
    @CEBBCAT 从 Masm 入门,那东西很熟悉 ......不过人总是越来越懒的
    wdhwg001
        121
    wdhwg001  
       Jun 8, 2017
    http://kemalcr.com
    你看这个怎样?
    mingyun
        122
    mingyun  
       Jun 8, 2017
    go 感觉语法略奇葩
    nomoon
        123
    nomoon  
       Jun 8, 2017
    @gamegrd 哥,python 自己的编译器没有多线程的。。。。加核没有用的。。。。
    keenkiller
        124
    keenkiller  
       Jun 8, 2017
    哥写了 N 年 Python,现在不还是在写 Java=_=
    herozhang
        125
    herozhang  
       Jun 8, 2017 via iPhone
    有想法,没业务量的初期,快速开发更重要。
    有业务量,没性能压力的中期,技术栈招人容易更重要。
    有性能压力,没充足资金的后期,压榨现有性能更重要。
    有了充足资金,请瞎折腾,公司有现金牛,一切都好说,可以追求些主义啥的
    QAPTEAWH
        126
    QAPTEAWH  
       Jun 8, 2017   ❤️ 1
    算上单元测试,代码量应该比 Python 少。

    日常黑动态类型 ✓
    jlkm2010
        127
    jlkm2010  
       Jun 8, 2017
    go 是强类型静态语言,py 是弱类型动态语言,完全不是一个概念,go 可以轻松玩转大型项目,py 的话就要拼大神了,才多一倍代码,值!
    xrlin
        128
    xrlin  
       Jun 9, 2017 via iPhone
    @jlkm2010 纠正一下,py 是强类型
    demerol
        129
    demerol  
       Jun 9, 2017 via Android
    @tiancaiamao 就是太简洁了
    changwei
        130
    changwei  
       Jun 9, 2017 via Android
    其实用一下 ide 和自动完成,代码量也不会多太多。即使是 java,注解加上用各种 ide 各种自动提示自动完成,感觉也不会比别的编程语言花太多时间。
    Miy4mori
        131
    Miy4mori  
       Jun 9, 2017 via iPhone
    @gamegrd 有个好的 ide,java 写起来都不是事。
    hinkal
        132
    hinkal  
       Jun 9, 2017
    代码量≠开发时间。一个几万行代码的项目,如果纯敲键盘的话也就半个小时就完成项目了,你真以为开发瓶颈在代码长度上?
    akring
        133
    akring  
       Jun 9, 2017
    @kopp123 兄弟出本书吧,名字都帮你想好了,就叫《如何消灭代码里的英文》
    wweir
        134
    wweir  
       Jun 9, 2017
    你是要代码量少并且效率高是吧?

    强行安利一波 Haskell
    你会发现效率、代码量都是次要的,重要的是智商
    wbt
        135
    wbt  
       Jun 9, 2017
    Go 很多东西都要自己写,我上次要找一个四舍五入的函数,结果 math 包里面并没有 。
    Kisesy
        136
    Kisesy  
       Jun 9, 2017
    @wbt 是啊,到 1.10 才会加到官方库
    jameshuazhou
        137
    jameshuazhou  
       Jun 9, 2017
    我怎么没看到官网文档里有这么句话?
    另外四舍五入为何还需要库? int(f+0.5)
    wbt
        138
    wbt  
       Jun 9, 2017
    @jameshuazhou 关键是有保留几位小数的问题,你这个只适用于整数的四舍五入。
    wbt
        139
    wbt  
       Jun 9, 2017
    而且还要考虑正负的问题,你这个方法应该只适合正数。
    qianguozheng
        140
    qianguozheng  
       Jun 9, 2017
    我是个业余选手,觉得你这个太无厘头了。
    1. 多一倍代码,看谁写的
    2. go 的精髓都不知道就知道火不火,有用吗?
    3. 以前用 python 写测试服务器,现在全用 golang 了,本人嵌入式,发现 python 的环境配置比 go 复杂的多啊
    CDog34
        141
    CDog34  
       Jun 9, 2017
    目测 LZ 是在这里看到的这句话: https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/03.8.md
    但是找了半天都没有找到文中提到的“引用 27 ”

    于是找到原书: http://files.cnblogs.com/files/rojas/thewaytogo.pdf
    这句话在第 42 页,在 594 页找到了引用链接的地址: http://www.theregister.co.uk/2010/05/20/go_in_production_at_google/

    建议 LZ 好好读一读这篇文章
    xiaoyu9527
        142
    xiaoyu9527  
       Jun 9, 2017
    GO 真的比 PYTHON 快 27 倍么? 这么牛逼?
    jameshuazhou
        143
    jameshuazhou  
       Jun 9, 2017
    @wbt math 里面确实没有。
    我一般用 fmt 格式化 float,就自动舍入了。
    涉及精确计算的,像银行分钱这类的,都是转成大整数,然后用专门算法处理。
    holulu
        144
    holulu  
       Jun 9, 2017
    想见识一下是什么文档
    myself659
        145
    myself659  
       Jun 9, 2017
    go 还是高效的 应该比 python 快多了 两个小时从链家爬了 60W 条数据
    donyee
        146
    donyee  
       Jun 9, 2017
    前天京东买的 深入浅出 nodejs,昨天送到后没拆开,今天退货了;
    重新下单一本 GO 并发编程实践; 6 不 6 ?
    flynaj
        147
    flynaj  
       Jun 9, 2017
    比 Python 大概多写一倍的代码(详见引用 27 )。

    这个不可能。
    package main

    import (
    "log"
    "net/http"
    )

    func main() {
    // Simple static webserver:
    log.Fatal( http.ListenAndServe(":8080", http.FileServer( http.Dir("/usr/share/doc"))))
    }

    你用一半的代码实现一下上面这个文件服务器!
    yaidev
        148
    yaidev  
       Jun 9, 2017
    我 Java 表示不服
    littleshy
        149
    littleshy  
       Jun 9, 2017
    那个大括号不能换行感觉好难受啊……
    PythonAnswer
        150
    PythonAnswer  
       Jun 9, 2017
    @flynaj 囧。。。一半不行,只好用一行实现了:

    python -m http.server 8000
    recall704
        151
    recall704  
       Jun 9, 2017
    自己玩怎么开心怎么玩, 但是现在项目要用了, 我也不想学 go, 但没办法阿.
    fasling
        152
    fasling  
       Jun 9, 2017 via Android
    代码量大不代表写起来慢
    coderlxc
        153
    coderlxc  
       Jun 9, 2017
    还是你没有刚需, 25 倍的处理速度, 占用 2/3 内存, 静态语言的优点就是性能好, 但代码多
    如果你是需要性能, 有可能就是这样的:

    我草! 快 25 倍!
    我草! 少占用 2/3 内存!
    我草!我草! 去你大爷的 Python!
    gamegrd
        154
    gamegrd  
    OP
       Jun 9, 2017
    @coderlxc 有道理。。。是这样子的
    issues
        155
    issues  
       Jun 9, 2017
    @PythonAnswer 吓的我赶紧试一下
    sagaxu
        156
    sagaxu  
       Jun 9, 2017
    @issues 你那是 python2,module 名字不同
    crazyjin
        157
    crazyjin  
       Jun 9, 2017   ❤️ 1
    敲代码的时间绝不等于开发时间。开发的时间大多花在了讨论需求,框架,数据设计,接口设计,调试,测试这些地方。写代码的时间少之又少。所以当一个对性能敏感的项目,我会毫不犹豫选 go 之类静态语言,哪怕多写一倍的代码。
    @herozhang 做自己项目的节奏!
    doenitz
        158
    doenitz  
       Jun 9, 2017
    本人 Python 开发,业余时间写点 go,首先说一下,个人感觉两门语言都很成功。
    然后看了看 Python 和 go 的源码,有以下的感觉:
    1、go 的源码写的比 Python 的源码要规整的多,也更易读;
    2、从内存处理线程处理的那部分源码来看,go 以后如果要进行加速优化的话要比 Python 简单些。
    毕竟 Python 最早是个人开发的,可能并没有考虑那么多。
    反正我是两门语言都喜欢,感觉都挺好的。
    carlonelong
        159
    carlonelong  
       Jun 9, 2017
    主要是泛型和面向对象太难用。
    WangYanjie
        160
    WangYanjie  
       Jun 9, 2017
    @hinkal 几万行,半个小时;每分钟输入 几千个字符?还是你代码都是吹出来的
    mahengyang
        161
    mahengyang  
       Jun 9, 2017
    @qdwang 有道理,ruby 除了打日志,找不到更好的调试方法
    araraloren
        162
    araraloren  
       Jun 9, 2017
    推荐几篇 “黑” GO 的文章

    一只有自闭的 gopher http://www.evanmiller.org/four-days-of-go.html

    https://github.com/ksimka/go-is-not-good
    simple2025
        163
    simple2025  
       Jun 9, 2017
    @issues python -m SimpleHTTPServer 这是 py2 的
    LINAICAI
        164
    LINAICAI  
       Jun 9, 2017
    @SuperMild 你这么说把 swift 当什么
    zonghua
        165
    zonghua  
       Jun 10, 2017 via iPhone
    @qdwang Python 都不知道传入的是 str 还是对象
    a7072547
        166
    a7072547  
       Jun 10, 2017
    想学什么做什么直接上手,
    这里给你推荐一个 专栏,可能会帮助到你
    https://zhuanlan.zhihu.com/goroutine
    hinkal
        167
    hinkal  
       Jun 14, 2017
    @WangYanjie 呀,没细算,那就几个小时吧。意思明白就行
    ziming2018
        168
    ziming2018  
       Sep 4, 2017
    最花时间的是找错误并解决错误
    buhi
        169
    buhi  
       Nov 20, 2018
    "我们 gopher 不需要泛型"
    necodba
        170
    necodba  
       Aug 2, 2019
    你说的很有道理,所以写 Java 的那些比写 C 的代码量多几倍,是活该咯(手动狗头
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5602 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 243ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    ♥ Do have faith in what you're doing.