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

一句话概括为什么学习 go 语言

  •  
  •   xmge · May 7, 2020 · 22803 views
    This topic created in 2378 days ago, the information mentioned may be changed or developed.

    从 17 年开始学习 go 的,之前是做 java 开发的,刚开始写 go 的时候,我去,怎么不写 “;”,这么不严谨,不过 go 起来挺舒服的,直接写方法也挺舒服的,后来有次又写 java,我去,为啥要写 “;”。

    大家都是为什么学习 go 啊。用一句话概括一下,为什么一句话,因为一句话才是精华啊。

    Supplement 1  ·  May 7, 2020
    哈哈,会不会因为这个帖子,在 go 生态圈又诞生了几个大佬。
    164 replies  •  2020-06-25 13:25:01 +08:00
    1  2  
    ❮ ❯
    jimyan
    jimyan
    May 7, 2020
    101
    @shoaly 依赖 libc
    loading
    loading
    May 7, 2020 via Android
    102
    时髦
    ica10888
    ica10888
    May 7, 2020
    103
    大道至简
    monkeyWie
    monkeyWie
    May 7, 2020❤️1
    104
    在公司做分享的时候总结了三点:
    1. 同步 IO 写法,底层自动转异步 IO,这点写过 JAVA NIO 的应该都能体会到有多爽
    2. 协程
    3. 静态编译,交叉编译,并且体积可以接受

    关于开发效率这点,并没有觉得有什么提升,除非是开发偏底层中间件之类的东西,我自己用 go 一般都是开发一些网络协议方面的东西。
    写业务的话还是 java 比较香,毕竟 go 缺少泛型、异常处理、动态代理、全家桶等等。
    charlie21
    charlie21
    May 7, 2020
    105
    golang 广告做得好
    charlie21
    charlie21
    May 7, 2020
    106
    ( 能把拐杖卖给腿脚好的人 )
    monkeyWie
    monkeyWie
    May 7, 2020
    107
    然后刚好公司自研的 DevOPS 平台需要和 docker 和 k8s 打交道,所以也是工作和业余都用上了 go
    cenx
    cenx
    May 7, 2020
    108
    比较简单,容易上手
    sxszzhrrt
    sxszzhrrt
    May 7, 2020
    109
    公司要求,为了有口饭吃
    blless
    blless
    May 7, 2020 via Android
    110
    不知道 v 站哪来的这么大怨气哦,我就觉得 rust 麻烦,python 效率不行,java 吃内存嘛。go mod 现在各种 goproxy 不香吗。
    bearbaba
    bearbaba
    May 7, 2020
    111
    够浪( golang )
    pythonee
    pythonee
    May 7, 2020
    112
    技多不压身,想看下协程机制
    justfortest
    justfortest
    May 7, 2020
    113
    我只想说动态类型一时爽,一直动态一直爽,python 大法好,ruby 大法好。
    QingXuJiaZhi
    QingXuJiaZhi
    May 7, 2020❤️16
    114
    用 Go 编程心智负担很低。

    必须承认 Go 的缺点是 “不好玩”,没有黑魔法,由于没有泛型有时(很少时候)会需要手动复一些代码造成冗余,每隔几行就要写一次 if err != nil,连三目运算符都没有,一大堆现代编程语言的语法一概不提供!只能老老实实用最原始最基本的语法来写程序。

    但这些代价是值得的,由于语法精简,因此易学、编程时会分散注意力去搞黑魔法、看别人的代码或自己的旧代码非常清晰易懂、不管谁写出来的 Go 代码编程风格都比较一致。

    由于错误处理采用了 verbose 到极致的方式,因此如果老老实实处理每一个 error (这也是 Go 文化之一),将会发现 debug 非常轻松,这是一个极大的优点,一旦感受到这一点,就能容忍 if err != nil 了。

    语法精简的另一个大好处是,闪电般的编译速度,这点也是非常爽。

    还有就是标准库很强大,而且质量很高,官方文档非常优秀,社区、生态发展良好等等,很多优点。
    justfortest
    justfortest
    May 7, 2020
    115
    @shoaly 很多语言都可以打包成可执行文件,golang 有些库依旧需要依赖和编译。
    amtb
    amtb
    May 7, 2020 via iPhone
    116
    @Hanggi #75
    IsaacYoung
    IsaacYoung
    May 7, 2020
    117
    先问是不是
    orm
    orm
    May 7, 2020 via iPhone
    118
    学完 go 学 rust,赶时髦
    Acoolda
    Acoolda
    May 7, 2020 via Android
    119
    因为 go to win 啊
    loryyang
    loryyang
    May 7, 2020
    120
    似乎看起来比较潮?
    JB18CM
    JB18CM
    May 7, 2020
    121
    钱
    SlipStupig
    SlipStupig
    May 7, 2020❤️3
    122
    因为自己智商不够又想写高性能程序
    frankyzf
    frankyzf
    May 7, 2020❤️2
    123
    有个疑虑是 Google 隔一段时间就会抛弃一些产品,有点担心这点(虽然 Go 开源)。
    silvernoo
    silvernoo
    May 7, 2020
    124
    没人提交叉编译吗?我投一个交叉编译
    guonaihong
    guonaihong
    May 7, 2020
    125
    @jimyan go 可以不依赖 libc,直接 env CGO_ENABLED=0 就行。
    chengxiao
    chengxiao
    May 7, 2020
    126
    没有那么多花里胡哨的写法,都老老实实的写好逻辑,看别人源码不是很吃力
    huoru
    huoru
    May 7, 2020❤️1
    127
    不为什么,因为 go 是富二代,爹好名声大,所以跟风去了,至于实际上好不好?营销做的好,好不好都不是问题。
    CEBBCAT
    CEBBCAT
    May 7, 2020 via Android
    128
    @greatgodwei Go 的工资真的很高吗?我实习 Go 五个月了,也可能是因为我拿的是实习工资的原因……
    yuzhiquan
    yuzhiquan
    May 7, 2020
    129
    kubernetes
    poplar50
    poplar50
    May 7, 2020 via Android
    130
    生活所迫
    May725
    May725
    May 7, 2020
    131
    类型和名字 为什么要换方向
    Axel2
    Axel2
    May 7, 2020 via iPhone❤️4
    132
    If you want to make love wearing nothing, choose C.
    If you want to make love wearing a condom, choose Go.
    If you want to make love wearing a spacesuit, choose Rust.
    之前在 Reddit 上看到的。所以我选 go
    wangyzj
    wangyzj
    May 7, 2020
    133
    @Axel2 666
    pmx1990
    pmx1990
    May 7, 2020 via iPad
    134
    改 k8s 源码 ,
    cloverzrg2
    cloverzrg2
    May 8, 2020
    135
    @AngryMagikarp #14 go 开发的 frp 可以运行在路由器、linux 、win 等设备上 https://github.com/fatedier/frp/releases,你只是只接触服务端的开发
    chinesestudio
    chinesestudio
    May 8, 2020 via Android
    136
    @shoaly 我也用 go 。但是 可以用不代表一直好用。一样要再编译再部署。能解决问题的都是好语言。
    lewinlan
    lewinlan
    May 8, 2020 via Android
    137
    静态编译类型——可靠
    工具链齐全——省心
    强制语法——好读好写
    原生协程——无痛并发
    与 ts 语法接近——快乐全栈
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    May 8, 2020 via iPhone
    138
    PHP 做不到的地方,它做到了
    xmge
    xmge
    OP
    May 8, 2020
    139
    @IsaacYoung 先问是不是,再问为什么,哈哈,看来是的人挺多,这个问题就是是的人回答。不是的人了解了解。
    gonearewe
    gonearewe
    May 8, 2020 via Android
    140
    并发好写
    raptor
    raptor
    May 8, 2020
    141
    为了一个 python 程序能在 windows 上跑,用 go 改写了……因为所有 python 的并发机制都依赖 libev 之类的 windows 没有的东西
    sunwq
    sunwq
    May 8, 2020
    142
    因为有个好爹
    zzzmh
    zzzmh
    May 8, 2020
    143
    闲的发慌 精力旺盛 无处发泄 和自己较劲 自己为难自己 花时间找罪受
    (滑稽)
    zjsxwc
    zjsxwc
    May 8, 2020
    144
    @Axel2

    Go 不能和 Rust C/C++比较,因为 gc 是个本质的区别
    bintianbaihua
    bintianbaihua
    May 8, 2020
    145
    因为香。。
    vanishcode
    vanishcode
    May 8, 2020
    146
    大学时候写 web 项目交作业特别方便
    yuShan1
    yuShan1
    May 8, 2020
    147
    一个字就够了: 钱
    fancy2020
    fancy2020
    May 8, 2020
    148
    为了看 V2Ray 的代码(:逃
    sherryqueen
    sherryqueen
    May 8, 2020
    149
    后端用着. 顺带喊我学了.
    xhinliang
    xhinliang
    May 8, 2020
    150
    @shoaly run anywhere 你可拉倒把
    6xiaowu9
    6xiaowu9
    May 8, 2020
    151
    就搞不懂做 PHP 的为什么要转 GO
    hunter2015
    hunter2015
    May 8, 2020
    152
    python 性能不好(学习之后发现,go 单进程性能并不必 python 好)
    evilic
    evilic
    May 8, 2020
    153
    单独的了解一下 go,以便确认它的使用情况,方便在未来使用它方便完成任务的时候使用它。
    zhengdaozi
    zhengdaozi
    May 8, 2020 via Android
    154
    给我工资我就学,其实用是因为公司直播的聊天项目,使用 php 沾满,而 go 降低不少,别说 swoole,因为我的 go 也一样很烂
    sunxiansong
    sunxiansong
    May 8, 2020
    155
    启动快,内存门槛低,单元测试方便,强类型,编译型,直接打包二进制,简单 花里胡哨的东西少

    没错我原来主要写 java,js
    qW7bo2FbzbC0
    qW7bo2FbzbC0
    May 8, 2020
    156
    @lewinlan 你说的这些 c# on .NetCore 也适合啊
    fovecifer
    fovecifer
    May 8, 2020
    157
    在我看来两点:
    1. 单个可执行文件,没有恶心的运行时依赖问题
    2. 用户内核线程 M:N 模型,理论上最高效的模型吧
    pursuer
    pursuer
    May 8, 2020
    158
    @fovecifer 理论最高效应该是回调,但是我想你大概不会喜欢这么写异步程序的
    shoaly
    shoaly
    May 8, 2020
    159
    @xhinliang 嗯 莫非你觉得 java 才更是 run anywhere ?...
    xyjincan
    xyjincan
    May 8, 2020 via Android
    160
    比 c 方便,执行文件哪里都能执行
    xyjincan
    xyjincan
    May 8, 2020 via Android
    161
    gc,内存动态占用,不用知道返还给系统
    qwefdrt
    qwefdrt
    May 8, 2020
    162
    工作必须得用
    labubu
    labubu
    May 9, 2020 via Android
    163
    没人从 cpp 转过去的嘛?
    jinsongzhao
    jinsongzhao
    Jun 25, 2020
    164
    我也可以一句话概括为何不学 golang 。
    我主要语言是 C/C++/Java,go 不能替代它们所以不学。

    go 不能替代 C/C++,已成定局。go 不能消灭 java 只能并存也是定局,这样转 go 的动力只有两个了,多个技能多个机会的机会主义,不擅长 java 的方式更擅长 go 的思维方式。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1115 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 136ms · UTC 18:08 · PVG 02:08 · LAX 10:08 · JFK 13:08
    ♥ Do have faith in what you're doing.