一句话概括为什么学习 go 语言 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xmge
V2EX    程序员

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

  •  
  •   xmge 2020-05-07 12:35:48 +08:00 20728 次点击
    这是一个创建于 1984 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    第 1 条附言    2020-05-07 13:52:34 +08:00
    哈哈,会不会因为这个帖子,在 go 生态圈又诞生了几个大佬。
    164 条回复    2020-06-25 13:25:01 +08:00
    1  2  
    shoaly
        1
    shoaly  
       2020-05-07 12:52:00 +08:00   19
    我觉得 go 的优势只有一个, 打包出来就是一个执行文件, 真正的 write once, run anywhere
    qq1340691923
        2
    qq1340691923  
       2020-05-07 12:57:20 +08:00
    协程
    gunavy
        3
    gunavy  
       2020-05-07 12:58:19 +08:00
    面向对象的 c
    LokiSharp
        4
    LokiSharp  
       2020-05-07 12:58:35 +08:00
    不学
    lazydog
        5
    lazydog  
       2020-05-07 12:59:28 +08:00 via Android
    工作需要
    table cellpadding="0" cellspacing="0" border="0" width="100%"> tikazyq
        6
    tikazyq  
       2020-05-07 13:01:12 +08:00
    zxc12300123
        7
    zxc12300123  
       2020-05-07 13:04:31 +08:00 via iPhone   9
    因为只会 python 要学一门静态语言
    simapple
        8
    simapple  
       2020-05-07 13:12:38 +08:00
    Vegetable
        9
    Vegetable  
       2020-05-07 13:13:43 +08:00   4
    跟风
    houshuu
        10
    houshuu  
       2020-05-07 13:15:56 +08:00
    1. 跨平台的时候很方便,执行文件发给别人直接运行。
    2. 协程上手容易。
    3. 强制格式化,便于阅读他人代码。
    sadfQED2
        11
    sadfQED2  
       2020-05-07 13:18:16 +08:00 via Android   1
    因为钱
    lhx2008
        12
    lhx2008  
       2020-05-07 13:20:31 +08:00 via Android
    最大的动力还是公司要求,JAVA 的跨平台性明显更强
    leoleoasd
        13
    leoleoasd  
       2020-05-07 13:24:53 +08:00
    在编译型语言里, 跨全平台, (go mod)包管理器做的不错, 标准库和第三方库都很多的也只有 go 了吧?

    还有协程太香
    AngryMagikarp
        14
    AngryMagikarp  
       2020-05-07 13:26:23 +08:00
    因为 Go 是综合开发效率和运行效率最好的语言。

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

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

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

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

    @xmge #82 确实时代变了,但是动态库还是有些的价值的,比如现在被广泛诟病的 electron,如果 electron 变成一个通用库,所有程序都用这一个库,不仅打包大小小很多,内存占用也可以变小。不过版本管理就会麻烦,各有取舍吧
    geminikingfall
        87
    geminikingfall  
       2020-05-07 17:03:21 +08:00
    好找工作。。。
    kylesean
        88
    kylesean  
       2020-05-07 17:08:50 +08:00
    Go 是 21 世纪的 C 语言,互联网时代的 C 语言!
    admirez
        89
    admirez  
       2020-05-07 17:10:18 +08:00
    因为我用 delphi
    walker2laok
        90
    walker2laok  
       2020-05-07 17:10:25 +08:00
    因为 PHP 已经不是世界上最好的语言了
    raincode
        91
    raincode  
       2020-05-07 17:13:53 +08:00
    因为我是 google 是我爹
    Felldeadbird
        92
    Felldeadbird  
       2020-05-07 17:25:05 +08:00
    大家都说 PHP 不好,我就稍微学了一点 GO 。
    hhyvs111
        93
    hhyvs111  
       2020-05-07 17:26:53 +08:00
    因为公司用 Go
    paoqi2048
        94
    paoqi2048  
       2020-05-07 17:28:43 +08:00
    害,品,你细品,go 它不香吗?
    SjwNo1
        95
    SjwNo1  
       2020-05-07 17:37:30 +08:00
    sunriz
        96
    sunriz  
       2020-05-07 17:37:58 +08:00
    犀利的瑞士军刀,morden c,同时没有 c++的复杂度包袱
    sunshinev
        97
    sunshinev  
       2020-05-07 17:40:28 +08:00
    go 就是要啥有啥
    clino
        98
    clino  
       2020-05-07 17:40:47 +08:00
    Go 的协程是不是最吸引人的?
    其实我没用过,但是感觉没有哪个其他语言在这方面能做得这么好.
    securityCoding
        99
    securityCoding  
       2020-05-07 17:41:33 +08:00
    简单明了,没有套娃
    micolore
        100
    micolore  
       2020-05-07 17:45:18 +08:00
    写完 rust hello world 之后,并了解一点语法之后,现在沉迷 go 不能自拔。
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2578 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 04:57 PVG 12:57 LAX 21:57 JFK 00:57
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86