首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  程序员

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

  •  
  •   gamegrd · 2017-06-08 08:32:23 +08:00 · 25253 次点击
    这是一个创建于 920 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Go 和 Python 在一般开发的平均水平测试中,Go 要比 Python 3 快 25 倍左右,少占用三分之二的内存,但比 Python 大概多写一倍的代码(详见引用 27 )。


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

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

    强行安利一波 Haskell
    你会发现效率、代码量都是次要的,重要的是智商
        135
    wbt   2017-06-09 09:55:48 +08:00
    Go 很多东西都要自己写,我上次要找一个四舍五入的函数,结果 math 包里面并没有 。
        136
    Kisesy   2017-06-09 10:01:19 +08:00
    @wbt 是啊,到 1.10 才会加到官方库
        137
    jameshuazhou   2017-06-09 10:11:20 +08:00
    我怎么没看到官网文档里有这么句话?
    另外四舍五入为何还需要库? int(f+0.5)
        138
    wbt   2017-06-09 10:40:28 +08:00
    @jameshuazhou 关键是有保留几位小数的问题,你这个只适用于整数的四舍五入。
        139
    wbt   2017-06-09 10:46:26 +08:00
    而且还要考虑正负的问题,你这个方法应该只适合正数。
        140
    qianguozheng   2017-06-09 10:51:13 +08:00
    我是个业余选手,觉得你这个太无厘头了。
    1. 多一倍代码,看谁写的
    2. go 的精髓都不知道就知道火不火,有用吗?
    3. 以前用 python 写测试服务器,现在全用 golang 了,本人嵌入式,发现 python 的环境配置比 go 复杂的多啊
        141
    CDog34   2017-06-09 12:02:21 +08:00
    目测 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 好好读一读这篇文章
        142
    xiaoyu9527   2017-06-09 12:13:21 +08:00
    GO 真的比 PYTHON 快 27 倍么? 这么牛逼?
        143
    jameshuazhou   2017-06-09 12:31:59 +08:00
    @wbt math 里面确实没有。
    我一般用 fmt 格式化 float,就自动舍入了。
    涉及精确计算的,像银行分钱这类的,都是转成大整数,然后用专门算法处理。
        144
    holulu   2017-06-09 12:34:13 +08:00
    想见识一下是什么文档
        145
    myself659   2017-06-09 13:01:08 +08:00
    go 还是高效的 应该比 python 快多了 两个小时从链家爬了 60W 条数据
        146
    donyee   2017-06-09 13:46:18 +08:00
    前天京东买的 深入浅出 nodejs,昨天送到后没拆开,今天退货了;
    重新下单一本 GO 并发编程实践; 6 不 6 ?
        147
    flynaj   2017-06-09 13:47:01 +08:00
    比 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"))))
    }

    你用一半的代码实现一下上面这个文件服务器!
        148
    sunzhenyucn   2017-06-09 14:26:21 +08:00
    我 Java 表示不服
        149
    littleshy   2017-06-09 14:31:07 +08:00
    那个大括号不能换行感觉好难受啊……
        150
    PythonAnswer   2017-06-09 14:40:21 +08:00
    @flynaj 囧。。。一半不行,只好用一行实现了:

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

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

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

    https://github.com/ksimka/go-is-not-good
        163
    chenqh   2017-06-09 17:19:03 +08:00
    @issues python -m SimpleHTTPServer 这是 py2 的
        164
    LINAICAI   2017-06-09 17:20:31 +08:00
    @SuperMild 你这么说把 swift 当什么
        165
    zonghua   2017-06-10 01:31:05 +08:00 via iPhone
    @qdwang Python 都不知道传入的是 str 还是对象
        166
    a7072547   2017-06-10 10:54:57 +08:00
    想学什么做什么直接上手,
    这里给你推荐一个 专栏,可能会帮助到你
    https://zhuanlan.zhihu.com/goroutine
        167
    hinkal   2017-06-14 02:07:45 +08:00
    @WangYanjie 呀,没细算,那就几个小时吧。意思明白就行
        168
    ziming2018   2017-09-04 09:14:56 +08:00
    最花时间的是找错误并解决错误
        169
    buhi   2018-11-20 18:16:14 +08:00
    "我们 gopher 不需要泛型"
        170
    necodba   134 天前
    你说的很有道理,所以写 Java 的那些比写 C 的代码量多几倍,是活该咯(手动狗头
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2468 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 13:58 · PVG 21:58 · LAX 05:58 · JFK 08:58
    ♥ Do have faith in what you're doing.