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

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

  •  
  •   xmge · May 7, 2020 · 22771 views
    This topic created in 2372 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  
    ❮ ❯
    shoaly
    shoaly
    May 7, 2020❤️19
    1
    我觉得 go 的优势只有一个, 打包出来就是一个执行文件, 真正的 write once, run anywhere
    qq1340691923
    qq1340691923
    May 7, 2020
    2
    协程
    gunavy
    gunavy
    May 7, 2020
    3
    面向对象的 c
    LokiSharp
    LokiSharp
    May 7, 2020
    4
    不学
    lazydog
    lazydog
    May 7, 2020 via Android
    5
    工作需要
    tikazyq
    tikazyq
    May 7, 2020
    6
    香
    zxc12300123
    zxc12300123
    May 7, 2020 via iPhone❤️9
    7
    因为只会 python 要学一门静态语言
    simapple
    simapple
    May 7, 2020
    8
    玩
    Vegetable
    Vegetable
    May 7, 2020❤️4
    9
    跟风
    fang2hou
    fang2hou
    May 7, 2020
    10
    1. 跨平台的时候很方便,执行文件发给别人直接运行。
    2. 协程上手容易。
    3. 强制格式化,便于阅读他人代码。
    sadfQED2
    sadfQED2
    May 7, 2020 via Android❤️1
    11
    因为钱
    lhx2008
    lhx2008
    May 7, 2020 via Android
    12
    最大的动力还是公司要求,JAVA 的跨平台性明显更强
    leoleoasd
    leoleoasd
    May 7, 2020
    13
    在编译型语言里, 跨全平台, (go mod)包管理器做的不错, 标准库和第三方库都很多的也只有 go 了吧?

    还有协程太香
    AngryMagikarp
    AngryMagikarp
    May 7, 2020
    14
    因为 Go 是综合开发效率和运行效率最好的语言。

    楼上说跨平台的,毫无意义,你们家部署的 JAVA 经常 Windows 、Linux 来回切换吗。
    zjsxwc
    zjsxwc
    May 7, 2020❤️1
    15
    没有泛型不想用 golang,逃
    teawithlife
    teawithlife
    May 7, 2020❤️2
    16
    初期:闲着没事,随便找门带 gc 的语言学学
    入门:交叉编译和单文件执行太惊艳了
    了解:我居然敢去看其他大佬的源码,而且居然一看就看懂了,顺手提个 PR 吧
    6IbA2bj5ip3tK49j
    6IbA2bj5ip3tK49j
    May 7, 2020
    17
    说 Go 开发效率的,我怀疑是不是只写过 C 或者汇编之类的。
    damngood
    damngood
    May 7, 2020
    18
    简单明了的方式把事情搞定的能力...
    AngryMagikarp
    AngryMagikarp
    May 7, 2020
    19
    说"说 Go 开发效率的,我怀疑是不是只写过 C 或者汇编之类的。" 的我怀疑小学语文没有毕业。
    hankai17
    hankai17
    May 7, 2020
    20
    把面向回调编程 变成 同步 /阻塞式编程
    shoaly
    shoaly
    May 7, 2020
    21
    @AngryMagikarp 并不光是网站, 还有很多 场景是给客户用的.... 你给 1 客户去装个 java 运行时不烦, 你给 100 个客户装 你就烦了... 这个时候 丢一个 go 运行文件给他 不香么
    hheedat
    hheedat
    May 7, 2020
    22
    @lhx2008 国内不是 90%的 server 都是 centos 吗?跨平台强有啥优势?
    kneep
    kneep
    May 7, 2020 via iPhone
    23
    高层语言的手感,底层语言的效率
    hantsy
    hantsy
    May 7, 2020
    24
    从企业开发需求角度,GO 属于还没进化过来的语言。
    codeforwork
    codeforwork
    May 7, 2020❤️2
    25
    工资高,别说那些有的没的,钱多就行了。
    cabing
    cabing
    May 7, 2020
    26
    简单粗暴:) 逃。。
    zzzzzzggggggg
    zzzzzzggggggg
    May 7, 2020
    27
    因为想学就学
    justin2018
    justin2018
    May 7, 2020
    28
    看你们都在说 看你们都在学 于是 我也学了 😁
    sunmker
    sunmker
    May 7, 2020❤️1
    29
    因为有人在吹,所以想学
    dilu
    dilu
    May 7, 2020
    30
    楼上一大堆优点,归根结底一个字:钱
    DelayNoMay
    DelayNoMay
    May 7, 2020
    31
    此时默默走过一名帅气的 golang 工程师
    lithbitren
    lithbitren
    May 7, 2020
    32
    rust 太费劲
    TypeError
    TypeError
    May 7, 2020
    33
    有人用,没人用的语言就懒得学了
    index90
    index90
    May 7, 2020
    34
    简单,方便
    gamexg
    gamexg
    May 7, 2020
    35
    编译后单文件,之前各种依赖库实在头大,go 解决了这个麻烦。
    协程,避开了回调地狱。
    内置交叉编译支持,可以轻松编译出来多个平台下的代码。
    wangyzj
    wangyzj
    May 7, 2020
    36
    用来替代 c++
    DGideas
    DGideas
    May 7, 2020
    37
    好玩,写了很多年别的编程语言了,学习一门新语言有一种(工程上的)新鲜感
    purensong
    purensong
    May 7, 2020
    38
    我觉得 go 代码风格不错,变量和类型我们通常在 java 里都是 int a,在 go 里面反过来,而且 go 的闭包也更加容易,写个多线程 go 一下就可以,通过通道在线程间传递变量很容易。自学了几天 go,还是老老实实工作写 java 了,害怕哪天代码出事故
    Kilerd
    Kilerd
    May 7, 2020
    39
    @leoleoasd #13 rust 的 cargo 表示问号?
    cnbattle
    cnbattle
    May 7, 2020
    40
    多年 phper, 想多会一门语言,中间断断续续尝试 java python 都在基础语法相关的学习中不舒服不习惯放弃了,知道两年前了解到 go,一直很舒服。。。可惜 昆明几乎没有公司主力用 go 的。。。
    leoleoasd
    leoleoasd
    May 7, 2020
    41
    @Kilerd #39 打扰了的确还有
    leoleoasd
    leoleoasd
    May 7, 2020
    42
    @Kilerd #39 没咋了解过 rust2333
    jin7
    jin7
    May 7, 2020❤️1
    43
    宁学 c++也不想学 go 狗头保命
    ConradG
    ConradG
    May 7, 2020
    44
    一句话:听说 go 的协程挺不错。

    然后学过后觉得……作为 C 的应用软件开发侧的增强算是合格的,但也就仅此而已,目前 go 的工程能力还是有欠缺。
    dayeye2006199
    dayeye2006199
    May 7, 2020
    45
    因为需要用开发 k8s 相关。
    aliensb
    aliensb
    May 7, 2020
    46
    不想写 python 了。。。
    hxtheone
    hxtheone
    May 7, 2020
    47
    协程太香
    hideinbush
    hideinbush
    May 7, 2020
    48
    @jin7 +1
    wangyzj
    wangyzj
    May 7, 2020
    49
    @ConradG 说来听听
    yukiloh
    yukiloh
    May 7, 2020 via Android❤️3
    50
    满屏幕 if nil
    go mod1.13 之前简直灾难
    如果没有七云牛我都不知道怎么下依赖
    Leon6868
    Leon6868
    May 7, 2020
    51
    @shoaly “py 做不到”系列
    hideinbush
    hideinbush
    May 7, 2020❤️1
    52
    我初学诗日,但欲工藻绘;
    中年始少悟,渐若窥宏大。
    怪奇亦间出,如石漱湍濑。
    数仞李杜墙,常恨欠领会。
    元白才倚门,温李真自郐。
    正令笔扛鼎,亦未造三昧。
    诗为六艺一,岂用资狡狯?
    汝果欲学诗,工夫在诗外。
    defunct9
    defunct9
    May 7, 2020
    53
    一个字,闲
    bluefalconjun
    bluefalconjun
    May 7, 2020❤️1
    54
    嵌入式程序员只会 C.
    想着学个面向对象的语言 看了下 go 好简单 走起...
    imherer
    imherer
    May 7, 2020
    55
    一开始是跟风,学了之后:真 TM 香~
    xmge
    xmge
    OP
    May 7, 2020
    56
    @hideinbush 好诗好诗
    d0m2o08
    d0m2o08
    May 7, 2020
    57
    交叉编译二进制真他妈香
    KasonPasser
    KasonPasser
    May 7, 2020
    58
    你们都用 go 找到工作吗?
    namelosw
    namelosw
    May 7, 2020
    59
    感觉说 routine 之类的其他语言也有,还有 Elixir 之类也挺好用的方案,我来换个视角:

    Rob Pike 之前聊过静态类型一般安全,运行比较快,但比较较笨重,编译慢开发效率低,所以后来反而又流行了动态类型语言或者脚本语言,效率确实很高
    但是动态类型或者脚本语言有时候火葬场
    当然还有 C/C++这种编译又慢又类型不安全火葬场的

    这时候你就会发现可以画出一个四象限,C/C++对角之前没有语言
    这个就是 Go 的 niche,又轻快又有静态类型,带着这个奔着象限 niche 的初衷,Go 各方面包括工具设计得也都轻快简洁,这个其实是很多人第一印象感觉一般,用起来感觉真香的原因
    lepig
    lepig
    May 7, 2020
    60
    因为怕死 怕饿死
    keepeye
    keepeye
    May 7, 2020
    61
    单文件部署、语法级协程和管道、比脚本强太多的运行效率
    RubyJack
    RubyJack
    May 7, 2020
    62
    主要还是设计哲学上对口味, 例如组合优于继承, 延后抽象,CPS 模型等等
    uuker
    uuker
    May 7, 2020
    63
    python, 慢
    fcmio
    fcmio
    May 7, 2020 via iPhone
    64
    打算 Python 熟练了,做几个项目,就去学 go……
    CEBBCAT
    CEBBCAT
    May 7, 2020 via Android
    65
    @KasonPasser 工作不好找,但也找得到,北京上海都有
    timothyye
    timothyye
    May 7, 2020
    66
    Go 打包出来的 Docker 镜像真香
    KasonPasser
    KasonPasser
    May 7, 2020
    67
    @CEBBCAT so 我也就学了个语法就完事了,没有深入了解了。
    please0stop
    please0stop
    May 7, 2020 via Android
    68
    有指针,灵活简洁,兼顾脚本性与系统性
    ID2333
    ID2333
    May 7, 2020
    69
    又想骗我学 Go
    dullwit
    dullwit
    May 7, 2020
    70
    话说 kotlin 也支持 native 呀
    ClarkAbe
    ClarkAbe
    May 7, 2020 via iPhone❤️1
    71
    简单方便跨平台包管理也便捷
    1.随时写点小工具,标准库的强大让我不必去打开 github
    2.写点小服务直接交叉编译丢路由器上就能跑,这点无论是 python 还是 java 都做不到的( py 要 pip 装一堆库,java 要装虚拟机
    3.编译成功过后基本不用去考虑什么动态链接库 /dll......静态语言的嚣张
    4.性能是真的超级好,一堆 php 的东西用 go 重写过后简直快起飞了,相见恨晚
    5.go mod 真香……为此自己还写了个脚本用来把自己经常用的库打包自己的微(重)服务,放心有 go vendor 不会出现分发源代码几百 M 的情况,除非一个项目用到了全部库?!(应该是不太可能
    keepfun
    keepfun
    May 7, 2020
    72
    go mod 导致 pkg 下面 一个包 n 多个版本 真是讨厌
    lordofhollows
    lordofhollows
    May 7, 2020
    73
    比 Java 简洁,方便
    协程、Channel 、指针、RPC 之类的
    Jackeriss
    Jackeriss
    May 7, 2020
    74
    为什么不学 go ? 因为学了 python 、java 和 js,就没动力学 go 了,在语法、生态和实用性上都不如 python 、java 和 js,go 并不是不可替代的语言,没有不学不行的理由,除非你是搞虚拟化的,还有之前是学 php 的和打死不学 java 的也许可以考虑学下 go 。
    Hanggi
    Hanggi
    May 7, 2020
    75
    语言层面:
    强制代码风格,自动格式化,无需配置,语法简单精炼,砍掉类继承多态,标准库 /谷歌库异常强大。。。
    工程方面:
    编译非常快,对系统依赖极少,无需配置运行环境,性能好,并发好,开发效率,交叉编译。
    感情方面:
    python 版本管理太糟心,java 太笨重,c++ 编译太慢
    looppppp
    looppppp
    May 7, 2020
    76
    第一眼看见就喜欢这种语法,简洁,没有啥花里胡哨
    Rwing
    Rwing
    May 7, 2020❤️3
    77
    我就想问一句,C# 不香吗?
    ben1024
    ben1024
    May 7, 2020
    78
    @Jackeriss 不幸连中 java,php 两枪,go 语言上还好,生态上还是有些薄弱
    gaius
    gaius
    May 7, 2020 via Android
    79
    我也在学
    pursuer
    pursuer
    May 7, 2020
    80
    很迷惑,最早的时候 C 程序都是静态编译的,后来为了避免内存中存在库的多个副本造成内存浪费,出现了动态库,然后,Go 又改了回去,然后这个特性受到了广泛好评。。。
    catoncat
    catoncat
    May 7, 2020 via iPhone❤️5
    81
    地鼠比较萌
    minyress
    minyress
    May 7, 2020
    83
    无聊
    AngryMagikarp
    AngryMagikarp
    May 7, 2020
    84
    @pursuer 张口就来系列。除非编译时候加了 CGO_ENABLED=0,否则编译的二进制依然有动态依赖。退一步说,谁是因为这个给 GO 好评的。
    kivensun
    kivensun
    May 7, 2020 via Android
    85
    因为写前台,看到有人说必须学一门后台推荐 go,然后就学了
    pursuer
    pursuer
    May 7, 2020
    86
    @AngryMagikarp #84 第一个回复就有人写了,"打包出来就一个可执行文件",有动态依赖是没错,但最多就依赖操作系统的部分核心库,也很少见到有人拿 Go 写动态库的。

    @xmge #82 确实时代变了,但是动态库还是有些的价值的,比如现在被广泛诟病的 electron,如果 electron 变成一个通用库,所有程序都用这一个库,不仅打包大小小很多,内存占用也可以变小。不过版本管理就会麻烦,各有取舍吧
    GeminiPro
    GeminiPro
    May 7, 2020
    87
    好找工作。。。
    kylesean
    kylesean
    May 7, 2020
    88
    Go 是 21 世纪的 C 语言,互联网时代的 C 语言!
    admirez
    admirez
    May 7, 2020
    89
    因为我用 delphi
    walker2laok
    walker2laok
    May 7, 2020
    90
    因为 PHP 已经不是世界上最好的语言了
    raincode
    raincode
    May 7, 2020
    91
    因为我是 google 是我爹
    Felldeadbird
    Felldeadbird
    May 7, 2020
    92
    大家都说 PHP 不好,我就稍微学了一点 GO 。
    hhyvs111
    hhyvs111
    May 7, 2020
    93
    因为公司用 Go
    paoqi2048
    paoqi2048
    May 7, 2020
    94
    害,品,你细品,go 它不香吗?
    SjwNo1
    SjwNo1
    May 7, 2020
    95
    钱
    sunriz
    sunriz
    May 7, 2020
    96
    犀利的瑞士军刀,morden c,同时没有 c++的复杂度包袱
    sunshinev
    sunshinev
    May 7, 2020
    97
    go 就是要啥有啥
    clino
    clino
    May 7, 2020
    98
    Go 的协程是不是最吸引人的?
    其实我没用过,但是感觉没有哪个其他语言在这方面能做得这么好.
    securityCoding
    securityCoding
    May 7, 2020
    99
    简单明了,没有套娃
    micolore
    micolore
    May 7, 2020
    100
    写完 rust hello world 之后,并了解一点语法之后,现在沉迷 go 不能自拔。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1290 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 170ms · UTC 20:39 · PVG 04:39 · LAX 12:39 · JFK 15:39
    ♥ Do have faith in what you're doing.