Go 语言诞生的意义是什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
chenhui7373
V2EX    Go 编程语言

Go 语言诞生的意义是什么?

  •  
  •   chenhui7373 2018-04-02 13:23:01 +08:00 7354 次点击
    这是一个创建于 2818 天前的主题,其中的信息可能已经有所发展或是发生改变。
    貌似 窗口程序是从 smalltalk 开始的( Xerox PARC ),

    smalltalk 的作者 alan kay 说过,最后悔的就是发明了 Object,重要的是 message


    联系上 go 语言是从 google 发起的,究竟有什么意义呢?


    和 erlang 关键词搜:streem 或者 http://www.ituring.com.cn/article/177079
    第 1 条附言    2018-05-09 09:24:20 +08:00
    现在天下分成 三派 LLVM JVM GolangGC

    LLVM Rust
    JVM Java Scala Groovy
    Golang + CGO
    第 2 条附言    2018-06-10 16:48:15 +08:00
    第 3 条附言    2018-06-17 17:29:03 +08:00
    wweir 87 天前 7
    据我了解,国内招聘 go 的主要是这几个方向还行
    1、区块链 (感谢以太坊)
    2、容器 (感谢 docker )
    3、云、调度方向 (感谢 k8s )
    4、监控 (感谢 prometheus )
    5、做具体服务 (都是被 php 的性能坑了的)
    6、做中间件层 (还是被 php 的性能坑了的)
    52 条回复    2018-04-04 08:52:54 +08:00
    jitongxi
        1
    jitongxi  
       2018-04-02 15:02:05 +08:00   3
    诞生的意义就是,语法现代化,无任何依赖,直接吃全平台。
    Keyes
        2
    Keyes  
       2018-04-02 15:06:20 +08:00   1
    @jitongxi libc 还是跑不了,不过已经非常好了,尤其是做需要下放到终端的跨平台程序,有没有太省心[真心实意的笑 cry]
    aminic
        3
    aminic  
       2018-04-02 15:08:59 +08:00 via Android   2
    娇娃感受到一万点伤害
    mengzhuo
        4
    mengzhuo  
       2018-04-02 15:18:51 +08:00   1
    @Keyes #2 谁说依赖 glibc 的?

    你们当成 C++ 2.0 就行了
    simple2025
        5
    simple2025  
       2018-04-02 16:21:35 +08:00   1
    集成 goroutine,
    静态语言不是 Java,c#
    bobuick
        6
    bobuick  
       2018-04-02 17:08:10 +08:00   2
    比如, 写个多路复用的 io, 用 netty 一顿配置,一顿 addLast, 一顿重载写 channelRead。
    用 go,两个 goroutine,一个 chan 就好了。

    运维就更加了。 我们运维表示真是太他妈爽了,还能交叉编译(关键够无脑)。
    twhphoenix
        7
    twhphoenix  
       2018-04-02 17:24:50 +08:00 via Android   5
    @mengzhuo
    C++ 2.0
    C 2.0
    unidentifiedme
        8
    unidentifiedme  
       2018-04-02 17:33:58 +08:00
    @jitongxi #1 Go 不依赖 libc 吧
    yeyuexia
        9
    yeyuexia  
       2018-04-02 17:34:45 +08:00
    我记得采访时说过,因为 c++的编译速度太慢了所以有了 go 233
    zjyl1994
        10
    zjyl1994  
       2018-04-02 18:16:49 +08:00
    全平台支持啊,我不会说上家的嵌入式设备就是用 go 写的 linux 包
    jininij
        11
    jininij  
       2018-04-02 18:51:17 +08:00 via iPhone   4
    为了与众不同。

    别的语言都习惯使用的语法。go 就反着来。
    其他语言不在乎的,go 就看重。
    其他语言在乎的,go 就忽略。
    其他语言要使用者自己实现的,go 就把它用语言特性实现。
    其他语言自己实现,想让使用者忽略的,go 就强制让使用者自己遵从。
    不为别的,就为了与众不同。
    WildCat
        12
    WildCat  
       2018-04-02 18:52:06 +08:00 via iPhone
    王垠:不过就是个 better shell 啦
    g8287694
        13
    g8287694  
       2018-04-02 18:54:22 +08:00
    @WildCat 又黑垠神
    gimp
        14
    gimp  
       2018-04-02 19:19:28 +08:00
    Better C++ 不是 Rust 吗...
    miketeam
        15
    miketeam  
       2018-04-02 19:22:56 +08:00 via iPhone
    诞生的意义说又有 top 可以谈了,
    chenhui7373
        16
    chenhui7373  
    OP
       2018-04-02 19:24:23 +08:00
    @mengzhuo c++ 20 移除原始指针
    mengzhuo
        17
    mengzhuo  
       2018-04-02 19:32:55 +08:00   5
    语法没啥问题,我 Python 转的都看得很舒服。
    别的语言不在乎什么?在乎什么?不细说没办法回。

    我只想说 Go 很工程,扎扎实实。
    遵从一个代码规范,没有泛型、重载、duck type,看代码就能知道发生了什么,不需要再看上下文,或者去考虑什么库版本乱七八糟的东西。
    一个静态二进制,没有依赖,只有经历过依赖噩梦才能体会必要。
    channel+goroutine 解决了进程间通讯,异步回调,这些伤脑的事,专注于逻辑实现,挺好。
    非空 interface 相当于承诺书,管你是 net.Conn, os.File, os.Pipeline, Kafka.Channel, 都能一样读出来,代码不用改。
    而语言层面支持 gen,告诉你,就算这都不行,还有自动化这条路。

    这就是为啥我喜欢 Go 的原因。

    搞语言学,或者自己炫技图爽显聪明的程序员,
    大可以对 Go 嗤之以鼻,换你们喜欢的方式去搞,
    反正到时候换了工作,哪用管后面接盘的怎么骂你。
    gowk
        18
    gowk  
       2018-04-02 19:49:42 +08:00
    @mengzhuo 我用头像支持你
    scnace
        19
    scnace  
       2018-04-02 20:15:05 +08:00 via Android   1
    把时间花在该花的地方
    glues
        20
    glues  
       2018-04-02 20:17:50 +08:00   1
    @mengzhuo 多少年了,连个像样包管理都没有,还好意思说很工程
    go 是不错,但是你都没吹到点子上,这也就是为什么网上黑 go 的人这么多了
    多学习几门语言再来评价,也就不会有那么多偏见,坐井观天的人都觉得自己拥有了全世界
    abcbuzhiming
        21
    abcbuzhiming  
       2018-04-02 20:47:27 +08:00   2
    我记得有句话是这么说的,“学术界更看重继承,工程界只关注组合”,带着这点去看 Go 语言和其它 Object 类语言的不同,你就会突然有所感悟
    abcbuzhiming
        22
    abcbuzhiming  
       2018-04-02 20:51:01 +08:00   3
    @glues js 从诞生到出现完善的包管理等待的时间更长,一点不妨碍人家成为流行语言,那个人说 Go 更偏向工程是没说错的,硬要说的话,Go 是针对当前软件工程上的某些痛点提出的特别解决方案,而且,Go 至少从设计上没打算把自己变成非常“全面的语言”。所以它放弃了其他一些东西,有人说这玩意是 C 2.0 非常形象,你想想 C 语言是尽善尽美的吗?
    Go 在某些领域是把锋利的小刀,但是它不是“全面的语言”。所以黑它的人不少,总之,用在合适的地方
    xpresslink
        23
    xpresslink  
       2018-04-02 21:02:51 +08:00
    差不多就是楼上说的,为了解决 C 做为服务器后端开发过于繁琐的问题。
    goophy
        24
    goophy  
       2018-04-02 21:13:54 +08:00 via iPhone
    业余程序猿看 go,语言简单,关键字少,源码一看就明白,没有那么多语发糖。编译好了直接扔服务器。速度快,占用内存小,越用越喜欢。之前用过 python,ruby。
    Taobin90
        25
    Taobin90  
       2018-04-02 21:29:12 +08:00
    @glues 『这也就是为什么网上黑 go 的人这么多了 』我还以为你发明过啥语言呢~都是搬砖的,装什么工头啊
    feather12315
        26
    feather12315  
       2018-04-02 21:44:38 +08:00 via Android
    @gimp #14,这几天在学 rust。 这个学习难度有点高…
    liu7833
        27
    liu7833  
       2018-04-02 21:51:01 +08:00 via iPhone
    为了在鄙视链上加一环
    chenhui7373
        28
    chenhui7373  
    OP
       2018-04-02 22:02:00 +08:00
    @liu7833 有道理,某就是跟着 G 家屁股后面做起云,G 家盯 AWS 打,得益于 GFW 成为中国版 G 家云。
    JoostShao
        29
    JoostShao  
       2018-04-02 22:47:41 +08:00
    为了等待某人创建一个叫做 go++的语言
    wingkou
        30
    wingkou  
       2018-04-03 08:30:33 +08:00 via Android
    @JoostShao 不是等一个 Go#么
    goofcc
        31
    goofcc  
       2018-04-03 08:55:38 +08:00
    go 的开发成本很低啊,可以为公司节省大把大把的银子,
    yuqaf
        32
    yuqaf  
       2018-04-03 09:16:40 +08:00
    @chenhui7373 愚人节的笑话吧。。。我也差点当真了,没 raw pointer 还怎么向下兼容 C。。。。
    j717273419
        33
    j717273419  
       2018-04-03 09:25:23 +08:00
    你一定知道 oracle 要告 google 用 java 侵权了吧?
    k9982874
        34
    k9982874  
       2018-04-03 09:28:13 +08:00 via iPhone
    @mengzhuo 别侮辱 c++
    abcbuzhiming
        35
    abcbuzhiming  
       2018-04-03 09:40:24 +08:00
    @goofcc 你在做梦,决定成本的永远是业务本身,没有什么技术上的银弹能够“为公司节省大把大把的银子”,如果说某个公司上了 go 就“节省了大把的银子”,那一定是之前的程序员在划水
    jlkm2010
        36
    jlkm2010  
       2018-04-03 10:16:00 +08:00
    @abcbuzhiming 目前的市场上,用 go 确实能筛选掉一些不靠谱的程序员
    linthieda
        37
    linthieda  
       2018-04-03 10:20:47 +08:00
    @mengzhuo
    @twhphoenix
    Go 好像是有 GC 的。 目前最有潜力成为 C++ 2.0 的还是不争气的 Rust
    abcbuzhiming
        38
    abcbuzhiming  
       2018-04-03 10:21:01 +08:00
    @jlkm2010 筛选?嗯,那培训机构又有活了,抬头看苍天,他们绕过谁,java,C#,PHP。python,大数据,深度学习。30 天速成 Go 语言等着你,啊哈哈哈哈
    jlkm2010
        39
    jlkm2010  
       2018-04-03 10:25:24 +08:00   1
    @abcbuzhiming 所以我说的是目前的市场上啊,go 真的大火了,这个功效确实就没了,不过个人感觉 go 用起来还挺舒服的
    Wolther47
        40
    Wolther47  
       2018-04-03 10:29:02 +08:00 via iPhone   1
    不不不,打不过 C++ 。Golang 是为了取代 C ++ ,但一不小心威胁到 Java 的语言。
    Wolther47
        41
    Wolther47  
       2018-04-03 10:33:25 +08:00 via iPhone   1
    另外,看 Golang 任何开源项目代码的体验非常好,godoc 非常清楚
    petelin
        42
    petelin  
       2018-04-03 10:34:57 +08:00   1
    @glues go get, glide, vender 这些工具用着有什么问题?
    petelin
        43
    petelin  
       2018-04-03 10:36:35 +08:00   1
    goroutine 对于多 x 程来说的, 封装的不能再好, 通信一个 channel 简直完美. 不知道为什么要黑, 我甚至觉得需要大量 x 程交互的应用无脑上 go 就好了
    mengzhuo
        44
    mengzhuo  
       2018-04-03 10:50:23 +08:00   2
    @k9982874 #34 并没有,Ken 老爷子本来就是想对标 C++的,可以看看西乔的漫画,总结得挺好的
    https://blog.csdn.net/Jerry_1126/article/details/72811587
    vincenttone
        45
    vincenttone  
       2018-04-03 11:05:45 +08:00   1
    以前学 go 的时候不怎么喜欢语法风格,后来看了一些 go 项目的源码,发现 go 写网络应用还是很爽的。
    simple2025
        46
    simple2025  
       2018-04-03 11:20:10 +08:00   1
    @abcbuzhiming 有可能是机器吧,但是都高并发了,换 golang,换 java 一样的啊,
    Reficul
        47
    Reficul  
       2018-04-03 11:23:48 +08:00   1
    @abcbuzhiming Java 培训班可以三十天速成,那 Go 大概只要 3 天
    ioth
        48
    ioth  
       2018-04-03 12:21:17 +08:00   1
    语言是老外(包括日本人)的 it 呆子宅出来玩的。
    jitongxi
        49
    jitongxi  
       2018-04-03 12:47:43 +08:00   1
    @chenqh golang 可以直接用 java 早期的 bio 那样的写法写出高并发,怕不怕
    lepig
        50
    lepig  
       2018-04-03 15:47:41 +08:00
    @glues 都是搬砖的,装什么工头
    glues
        51
    glues  
       2018-04-03 18:24:50 +08:00
    @lepig 不好意思,这里只有你是搬砖的
    owenliang
        52
    owenliang  
       2018-04-04 08:52:54 +08:00 via Android
    为了写并发网络省事
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     845 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 20:56 PVG 04:56 LAX 12:56 JFK 15:56
    Do have faith in what you're doing.
    ubao msn 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