The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
josephok

再来吹一波 Golang

  •  
  •   josephok · Nov 9, 2021 · 18418 views
    This topic created in 1831 days ago, the information mentioned may be changed or developed.

    作为 Go 语言爱好者,我来总结一波 Go 的优势:

    • 大道至简

    Golang 的开发者 Robert Pike 和 Ken Thompson 都是 UNIX 小组的成员,UNIX 系统影响深远,包括 UNIX 哲学-保持简单,也深深影响着后世。他们深刻理解简洁的好处,所以在设计 Golang 时同样保持这一原则。

    • Native

    编译成目标机器代码,部署容易,无需额外的依赖,性能优越。

    • 并发支持

    GoLang 使用 goroutine 来实现并发性,它提供了一个非常优雅的 goroutine 调度程序系统,可以很容易地生成数百万个 goroutine 。

    • 编译快

    无需解释

    • 完善的工具链

    有许多易于使用的内置工具,比如 gofmt 自动排版 Go 代码,很大程度上杜绝了不同人写的代码排版风格不一致的问题,大大提高了团队协作的一致性。

    欢迎 V 友们补充。

    132 replies  •  2023-10-20 13:48:27 +08:00
    1  2  
    ❮ ❯
    wakarimasen
    wakarimasen
    Nov 9, 2021 via Android❤️2
    1
    日经贴了。你说的都对,但其实对于我这样的菜狗来说,大佬用啥我就跟着用啥。
    iyear
    iyear
    Nov 9, 2021❤️1
    2
    我尝试预言一波,第一点会被喷死,第二第三点会有人说各种别的语言也支持


    语言大战马上开始,话说回来这种帖子太招黑了,我甚至觉得你是反串黑🐶
    waising
    waising
    Nov 9, 2021
    3
    go 会用的还是会用,不会用的吹了也不会用,反正每个语言都是一堆问题....看个人喜好和公司要求吧
    josephok
    josephok
    OP
    Nov 9, 2021
    4
    @iyear 这里并没有语言大战的意思。关于第一点,简洁性不是人之常情吗?
    qq1340691923
    qq1340691923
    Nov 9, 2021
    5
    马上就会开始大战了...
    ligiggy
    ligiggy
    Nov 9, 2021❤️3
    6
    第一点论证不充分。就比方说,衣服的设计师是 xxx ,他的风格是简单,所以他设计出来的新衣服就一定是简单的吗?
    Brian1900
    Brian1900
    Nov 9, 2021❤️3
    7
    nil 警告
    oott123
    oott123
    Nov 9, 2021❤️47
    8
    大道 if err != nil
    bipy
    bipy
    Nov 9, 2021
    9
    日经贴,甚至没有新颖的观点
    XTTX
    XTTX
    Nov 9, 2021❤️2
    10
    你这个肯定会又双叕引起语言大战。 我从 go 弄到 js 到 react 到 ts, 玩过一点点 express.js. 只要写惯了,语言没有什么大不了的。只要团队的代码有明确的标准,都还好。js 也有 eslint 和 prettier , 团队可以确定自己的排版风格。React 换成了 vite(esBuild, go 写的),compile 速度也不慢了。 至于性能,如果你的业务多到语言本身的性能成了瓶颈,我觉得你公司已经是独角兽级别的了,你会有足够的资源解决这些瓶颈。
    MarioLuo
    MarioLuo
    Nov 9, 2021
    11
    Go 语言的三座大山包管理,泛型,错误处理,全搞定就完美了
    Kilerd
    Kilerd
    Nov 9, 2021❤️1
    12
    大道至 nil
    BeautifulSoap
    BeautifulSoap
    Nov 9, 2021
    13
    Go 泛型要被解决了,但是 Go 这一言难尽无限套娃还不附带调用栈信息的 error 接口,估计还得继续用好多年
    masterclock
    masterclock
    Nov 9, 2021❤️1
    14
    我设计的语言 void
    1. 大道至简
    一生二,二生三,三生万物,void 回归本质:0
    2. native
    无需部署,兼容过去、现在、未来任何计算架构
    3. 并发支持
    无需解决任何并发带来的问题
    4. 编译快
    无需编译
    5. 完善的工具链
    6. 不存在




    大道至简,首先要是大道啊
    zijieq
    zijieq
    Nov 9, 2021 via iPhone
    15
    包管理太难用了
    xz410236056
    xz410236056
    Nov 9, 2021
    16
    @zijieq #15 有 go mod 之后还行啊
    XTTX
    XTTX
    Nov 9, 2021
    17
    @MarioLuo 包管理我觉得 go.vendor 能解决不少问题,默认选择不带 go.mod 的版本我觉得是有点蠢的。至于错误处理,我觉解决方式在于你设计 app 之初决定什么层级 wrap err 返回到 caller, 什么层级决定处理 err. 具体可以看看 github Ardanlab service repo. 它至少解决了我 web app 错误处理的问题。
    mogita
    mogita
    Nov 9, 2021❤️21
    18
    Go 语言,又名 Errlang 。
    ciki
    ciki
    Nov 9, 2021
    19
    感觉 go 在国内用的比国外还多
    keepfun
    keepfun
    Nov 9, 2021
    20
    go modules 混乱的一逼
    28Sv0ngQfIE7Yloe
    28Sv0ngQfIE7Yloe
    Nov 9, 2021
    21
    @ciki #19 目前是的,
    wonderfulcxm
    wonderfulcxm
    Nov 9, 2021 via iPhone❤️1
    23
    上次看到大道至简还是 thinkphp 的文档以及用这玩意的糟糕的体验。
    jackmrzhou
    jackmrzhou
    Nov 9, 2021 via iPhone
    24
    关于简洁性,评价一下 1.18 要上的 type parameter.
    darknoll
    darknoll
    Nov 9, 2021
    25
    开始压根没打算学这个,就非常看不起,觉得还是学 rust 好,可是最后呢,还不是学了 go 。
    不学 go 也行啊,就学 java 去内卷吧。
    gowk
    gowk
    Nov 9, 2021❤️2
    26
    https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html
    少即是多,这篇文章我读过很多遍了,建议学习 Go 的同学都读一下
    SmiteChow
    SmiteChow
    Nov 9, 2021
    27
    人生苦短啊,吹什么啊
    Numbcoder
    Numbcoder
    Nov 9, 2021❤️1
    28
    大道至简,为什么不去写汇编?
    jackmrzhou
    jackmrzhou
    Nov 9, 2021 via iPhone❤️3
    29
    @gowk 里面说 no template. 但是 1.18 马上就要上 mini 版 template 了呢.
    作为一名 golang 开发,事实就是我觉得 golang 并没有多好用。 阉割的特性需要用一些蹩脚的方式完成,但是别人告诉我这是大道至简。golang 专有的特性又让一些新转 golang 的经常写出问题。嗯 我说的就是那个 defer 和 channel 。
    用 golang 去写写中间件还行,用来写业务真的是头疼,但是现在又有多少人工作中用 golang 真的是在写中间件呢。
    meiyoumingzi6
    meiyoumingzi6
    Nov 9, 2021
    30
    害....... 不能好好继承蛋疼的一批, 有时候不得不魔改代码,往本地仓放一份
    kett
    kett
    Nov 9, 2021
    31
    生态还是差点,开箱即用的轮子还是少了点。
    ahmcsxcc
    ahmcsxcc
    Nov 9, 2021
    32
    @XTTX 不是 web app 呢
    XTTX
    XTTX
    Nov 9, 2021
    33
    @ahmcsxcc 有什么区别吗?
    ahmcsxcc
    ahmcsxcc
    Nov 9, 2021
    34
    @XTTX 非 web app 没有中间件
    pisc
    pisc
    Nov 9, 2021 via Android❤️5
    35
    我总结了一下吹某某编程语言的人常有的两个特征:1. 其实还不怎么懂这个语言,坑没踩够,还在蜜月期,2. 见识少
    pigspy
    pigspy
    Nov 9, 2021
    36
    大道至简,指 interface {}
    Fu4ng
    Fu4ng
    Nov 9, 2021
    37
    工作不好找啊。。。
    sanggao
    sanggao
    Nov 9, 2021❤️2
    38
    满天飞的 if nil
    满天飞的函数参数 interface{}
    谁看得懂?
    看不懂?抱歉 那是你水平太差
    sanggao
    sanggao
    Nov 9, 2021
    39
    golang 开发 web 比 php 有优势?
    longkas239
    longkas239
    Nov 9, 2021
    40
    过时了,2021 年 rust 已经大爆发,只剩下老顽固
    missdeer
    missdeer
    Nov 9, 2021
    41
    你说的都说,但今天.NET6 出了,被他们吹得我都想去试试 C#了
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    Nov 9, 2021 via iPhone❤️1
    42
    @missdeer 没有吹,这几年 C#的进步肉眼可见。我在海外,我们这边 C#是主流,市场占一半以上。大家都很期待
    DefoliationM
    DefoliationM
    Nov 9, 2021
    43
    错误处理跟屎一样
    yazinnnn
    yazinnnn
    Nov 9, 2021
    44
    为什么很少有人吹 clojure 呢,国内从业者太少的原因吗。。。
    zhuzhibin
    zhuzhibin
    Nov 9, 2021
    45
    又开始了
    oOoOoOoOoOo
    oOoOoOoOoOo
    Nov 9, 2021 via Android
    46
    @longkas239 Rust 圈 也挺嗨
    pkoukk
    pkoukk
    Nov 9, 2021
    47
    啥时候改改 if err:=
    我代码里起码有三分之一在写这句话
    redmoon0825823
    redmoon0825823
    Nov 9, 2021
    48
    人生苦短,我用 ruby
    JudyHal
    JudyHal
    Nov 9, 2021❤️3
    49
    判断一个语言好不好,看那些国家用就行了,Go 和 Java 都是典型的只有中国在用的,怎么样就不用我多说了吧?
    guanhui07
    guanhui07
    Nov 9, 2021
    50
    大道至 nil
    hbtech
    hbtech
    Nov 9, 2021❤️5
    51
    @JudyHal #49 Java 只有中国在用?
    saturn7
    saturn7
    Nov 9, 2021❤️2
    52
    性能被 C++, Rust 按地上摩擦,生态,GC 又不如 JAVA ,鸡肋选择。
    ncepuzs
    ncepuzs
    Nov 9, 2021❤️4
    53
    @JudyHal 无知傲慢又愚蠢

    「回复了 josephok 创建的主题 › Go 编程语言 › 再来吹一波 Golang
    判断一个语言好不好,看那些国家用就行了,Go 和 Java 都是典型的只有中国在用的,怎么样就不用我多说了吧?」

    「回复了 passer9527 创建的主题 › 问与答 › 一个疑惑:为啥很多初创公司不选择最主流的技术栈?
    Java 是一个本来就应该死掉的语言,硬是被国内这些培训班救了,可以说没有中国,Java 这种古董语言早就进垃圾桶了,还是把眼界打开多去看看 Go 吧,设计理念会让你得到空前的享受」
    zihuyishi
    zihuyishi
    Nov 9, 2021
    54
    @JudyHal 他厉害因为他是外国人,我垃圾因为我是你的同胞
    aababc
    aababc
    Nov 9, 2021❤️1
    55
    个人感觉,go 是把复杂从语言层面推到了普通的开发者!感觉它的 大道至简 是对开发 go 语言本身,作为一个使用 go 语言的人,只是觉得别扭!
    wzw
    wzw
    Nov 9, 2021
    56
    Python 换 Golang 的角度来说, 挺好, 越写越越好吧
    raycool
    raycool
    Nov 9, 2021
    57
    我用 python
    别的也不会
    stach
    stach
    Nov 9, 2021❤️3
    58
    go = python + c
    ---

    go 是一门 get 到了后端程序员 G 点的语言, 用这个公式来表达再恰当不过
    QingXuJiaZhi
    QingXuJiaZhi
    Nov 9, 2021❤️1
    59
    @stach 我用了 go 之后甚至有一点点嫌弃 python ,因为最著名的 python 哲学 The Zen of Python 里说的,反而是 Go 做得比 Python 更好。

    明瞭优于隐晦
    简单优于复杂
    任何问题应有一种且最好只有一种解决方法
    很难解释的,必然是坏方法
    很好解释的,可能是好方法
    hushao
    hushao
    Nov 9, 2021
    60
    需要啥时咱用啥。
    每种语言都不是万能的,充分发挥特长才对。再爱也只是工具,不本末倒置。
    hushao
    hushao
    Nov 9, 2021
    61
    @saturn7 go 国内使用无非就是这俩对比了。性能比 c++差不太多的前提下,又比 java 省不少。所以都大厂在上车,收益明显,中小跟着上车明显是见风使舵。至于语言的其他什么特性如部署、编译、开发体验之类,作为决策人,你觉得除了成本和收益,人家关注么。
    至于个人来说,要么要求啥用啥,要么喜欢啥用啥,无他
    xuyang9978
    xuyang9978
    Nov 9, 2021 via iPhone
    62
    个人很喜欢 go (不过这些优点感觉网上都说腻了😂
    lbp0200
    lbp0200
    Nov 9, 2021
    63
    爽就行了,不要出来炫耀,低调
    gowk
    gowk
    Nov 9, 2021❤️3
    64
    「 Go 和 Java 都是典型的只有中国在用的,怎么样就不用我多说了」
    一口老血喷出来,差点当场出世,看来以后得少逛 V2 了,好多没有意义的讨论
    gowk
    gowk
    Nov 9, 2021❤️2
    65
    @gowk 按说能翻墙出来上 v2 的人,不至于啊……
    stach
    stach
    Nov 9, 2021
    66
    @cmdOptionKana Python 就像一个美女, 当你熟悉了, 却发现她有口臭, 有点嫌弃, 哈哈哈
    halfer53
    halfer53
    Nov 9, 2021
    67
    @Chad0000 澳洲或者纽村?
    leeg810312
    leeg810312
    Nov 9, 2021 via Android
    68
    go 加了泛型,可能要加模板了,还大道至简吗?我们开发组在做一个产品,最初也是希望轻量简洁,随着产品进化,筛选特性,很多次迭代做到现在还是变重了。为了满足技术需求,最终 go 也会走上逐渐增加特性的道路
    szkoda
    szkoda
    Nov 9, 2021
    69
    百团大战开始了,这种帖真是流量密码啊
    balabalaguguji
    balabalaguguji
    Nov 9, 2021
    70
    曾今我刚学习 Go 时也是有你这种错觉,知道我开始用它来跟 Mongodb 交互,吐了,看帖 https://www.v2ex.com/t/810126#reply98
    balabalaguguji
    balabalaguguji
    Nov 9, 2021
    71
    直到
    zxCoder
    zxCoder
    Nov 9, 2021
    72
    golang 的大道至简(if err != nil) 就跟苹果的刘海一样 hhh
    TypeError
    TypeError
    Nov 9, 2021❤️1
    73
    我还是喜欢 python ,除了速度慢
    go 其实就那样,该加的特性不加,enum 都没有,反而 protobuf 里有,又要用代码生成实现一次
    不该加的特性加了,比如比较 nil interface 的时候非要比较 type 和 value 两个地方,太傻逼了
    micean
    micean
    Nov 10, 2021
    74
    @ncepuzs

    难道 spring 出了这么多个版本,是被中国人救活的吗?
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    Nov 10, 2021 via iPhone
    75
    @halfer53 #67 嗯,纽村。
    WaldenHorizon
    WaldenHorizon
    Nov 10, 2021
    76
    忽略使用场景谈语言没有意义,go 是做高并发中间件的
    ncepuzs
    ncepuzs
    Nov 10, 2021
    77
    @micean 眼睛不好就去挂个号吧,实在不行捐了也行
    p1gd0g
    p1gd0g
    Nov 10, 2021
    78
    我还是喜欢 go 一点,c# 光是语法就够让我喝一壶了。
    suyuyu
    suyuyu
    Nov 10, 2021
    79
    重新定义 `简`
    fsdrw08
    fsdrw08
    Nov 10, 2021 via Android
    80
    @missdeer 这么高的 C#占有率,没猜错应该是澳洲新西兰吧?
    ZeroDu
    ZeroDu
    Nov 10, 2021
    81
    javaer:怎么说,这些真的没有绝对的。就平时搞一些一个小工具来看,go 的内存占用是真的香,对比 java 来说可能要占用 10 倍多吧。但是 go 其他发面是倒是没有 java 好使。
    fengjianxinghun
    fengjianxinghun
    Nov 10, 2021
    82
    @oott123 至简 interface{}
    dragondove
    dragondove
    Nov 10, 2021❤️2
    83
    大道至简,我发明的语言“太极”,语法就两个字“阴”和“阳”。阴为 0 阳为 1 。
    native: 编译成机器码,性能看编写的人。
    并发支持:如果你觉得不好,可以把其他的语言写的程序编译成二进制,然后转换为“太极”语言进行阅读学习。
    编译快:无需解释
    完善的工具链:任何工具链都可以使用,因为任何语言都可以最终翻译成“太极”。代码风格只有一种,不用担心不一致的问题。
    necodba
    necodba
    Nov 10, 2021
    84
    C 艹不好吗
    FightPig
    FightPig
    Nov 10, 2021
    85
    泛型要来了,以后的代码估计至简不了了,然后我最满意的就是编译速度,用 rust 总觉得 慢
    tedcon
    tedcon
    Nov 10, 2021❤️1
    86
    我喜欢 TypeScript
    libook
    libook
    Nov 10, 2021
    87
    零食🍬小板凳🪑围观撕逼大战🔭

    十年前见的最多的是“PHP 是世界上最好的语言”。
    imkerberos
    imkerberos
    Nov 10, 2021
    88
    @dragondove 你说出了我的心声.
    imkerberos
    imkerberos
    Nov 10, 2021
    89
    @pigspy 大道至简: void*
    hush3
    hush3
    Nov 10, 2021
    90
    啊对对对
    bxb100
    bxb100
    Nov 10, 2021
    91
    照这么说, rust 不是更值得吹吗
    skipwitit
    skipwitit
    Nov 10, 2021
    92
    对于大多数场景来说,python 和 go 完成需求,没什么区别
    哪个撸的快用哪个就行
    hikarugo
    hikarugo
    Nov 10, 2021
    93
    好无聊啊,这都能上热榜,讨论语言本身果然还是最具有流量的,毕竟谁都能插一句。。。
    Phishion
    Phishion
    Nov 10, 2021
    94
    现在都没几个人吹 PHP 了,俺的青春结束了
    lysS
    lysS
    Nov 10, 2021
    95
    @jackmrzhou 和别的语言都一样,那 go 的作用是什么? go 的简单的理念有什么问题
    liuxu
    liuxu
    Nov 10, 2021
    96
    @Phishion PHP 曾经是最好的语言,未来有一天一定还会再成为最好的语言。
    exhades
    exhades
    Nov 10, 2021
    97
    golang 就是为了简单的简单的语言而已。。。rust 才是最终答案 (手动狗头
    https://www.zhihu.com/question/490074663/answer/2207090107
    https://www.zhihu.com/question/352343414/answer/868915902
    exhades
    exhades
    Nov 10, 2021
    98
    @exhades #97 打错 - - 应该是 为了简单而简单的语言而已
    Zwying
    Zwying
    Nov 10, 2021
    99
    js yyds
    mx8Y3o5w3M70LC4y
    mx8Y3o5w3M70LC4y
    Nov 10, 2021
    100
    ts, yyds
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2075 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 196ms · UTC 14:13 · PVG 22:13 · LAX 06:13 · JFK 09:13
    ♥ Do have faith in what you're doing.