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

Golang 十年内有望成为第一语言吗?

  •  
  •   iConnect · 2018-01-28 16:49:13 +08:00 · 13394 次点击
    这是一个创建于 2491 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比较看好 go,虽然还没用来写过什么正式的项目,观望纯粹是因为生态的问题。如果 go 有 java 的年份和生态,早就大干快上了
    140 条回复    2018-01-31 11:08:36 +08:00
    1  2  
    zhaohui318
        1
    zhaohui318  
       2018-01-28 17:01:35 +08:00
    kotlin 或者 js 有可能超过 java,golang 没戏
    zhangfeiwudi
        2
    zhangfeiwudi  
       2018-01-28 17:01:48 +08:00
    我觉得不太可能,每个语言都有自己擅长的和不擅长的。
    zsdroid
        3
    zsdroid  
       2018-01-28 17:01:52 +08:00   ❤️ 2
    不能,因为 php 才是世界上最好的语言,哈哈
    qsnow6
        4
    qsnow6  
       2018-01-28 17:02:21 +08:00 via iPhone
    不可能
    ivechan
        5
    ivechan  
       2018-01-28 17:08:03 +08:00
    怎么可能。。。
    glues
        6
    glues  
       2018-01-28 17:09:32 +08:00
    你连用都没用过,就敢下此结论?
    fjzjk
        7
    fjzjk  
       2018-01-28 17:12:53 +08:00
    有 java 的生态每个语言都敢这么说
    popbones
        8
    popbones  
       2018-01-28 17:16:45 +08:00
    golang 好用就在于不是大而全的语言,目前主要还是用来写一些微服务和专精的工具,感觉十分好用。试着写过一些商务逻辑,因为商务逻辑不可避免的会有一些 golang 的哲学认为不应该存在的需求,中间变得很蛋疼就放弃了。

    未来的话我希望 Kotlin 替代 Python,Swift 替代 Java,Golang 替代 C
    f2f2f
        9
    f2f2f  
       2018-01-28 17:17:14 +08:00
    php 第一的声音还没死绝呢,楼主你歇歇吧
    blless
        10
    blless  
       2018-01-28 17:19:30 +08:00 via iPhone
    第一不好说 前几应该是妥妥的。
    bramblex
        11
    bramblex  
       2018-01-28 17:27:38 +08:00   ❤️ 33
    下一个取代 php 成为世界上最好的语言的毫无疑问是 golang
    毕竟这两个用户群体在某方面惊人的相似
    比如我们讨论这些语言的不足之处时,总有很多人跳出来仿佛我们杀了他们爹一样
    zonghua
        12
    zonghua  
       2018-01-28 17:30:20 +08:00 via iPhone   ❤️ 1
    天天嚷嚷嚷,结果这些语言份额离 VB.NET 还十万八千里。
    lfzyx
        13
    lfzyx  
       2018-01-28 17:32:02 +08:00
    @popbones Kotlin 是面向 JVM 开发的,怎么会和 Python 扯上关系
    qq1054000800
        14
    qq1054000800  
       2018-01-28 17:32:30 +08:00
    受不了 golang 的错误处理机制
    jetbillwin
        15
    jetbillwin  
       2018-01-28 17:44:27 +08:00
    选最合适的语言,选最趁手的语言解决问题。不要想着谁替代谁,代码质量看人,技术渣 AI 都救不了。至于生态,确定不是踩坑么……
    Kilerd
        16
    Kilerd  
       2018-01-28 18:16:31 +08:00
    @popbones kotlin 代替 Python,你怕不是活在梦里。
    feverzsj
        17
    feverzsj  
       2018-01-28 18:18:45 +08:00
    go 现在也只是小众语言而已
    miketeam
        18
    miketeam  
       2018-01-28 18:22:49 +08:00
    转 go 不解释了都。大爱啊,开发物联网和 web 后台都可以,又简单,没有历史包袱,性能好,容易度。iOSer 看 go 感觉好亲切。。。
    lihongjie0209
        19
    lihongjie0209  
       2018-01-28 18:23:25 +08:00
    想多了
    cnbattle
        20
    cnbattle  
       2018-01-28 18:42:09 +08:00 via Android
    没事在折腾 go,但工作还是 php
    mscb
        21
    mscb  
       2018-01-28 18:48:01 +08:00 via Android
    虽然很喜欢 go,自己也在用。但是成为第一语言,个人觉得还是没戏
    ltux
        22
    ltux  
       2018-01-28 18:50:24 +08:00
    当然可能,毕竟 go 他爹有钱。
    wweir
        23
    wweir  
       2018-01-28 18:58:59 +08:00 via Android
    还没听说有什么 golang 开发的,极大号的项目。小项目、小服务那是一大堆
    woodface2233
        24
    woodface2233  
       2018-01-28 19:01:04 +08:00 via iPhone
    我还能写代码十年么
    popbones
        25
    popbones  
       2018-01-28 19:06:27 +08:00
    @Kilerd 我总感觉 Kotlin 将来有跳出 JVM 的野心
    sfqtsh
        26
    sfqtsh  
       2018-01-28 19:09:03 +08:00 via Android   ❤️ 1
    天杀的{不能单独一行我就受不了。。。
    zpvip
        27
    zpvip  
       2018-01-28 19:09:26 +08:00 via Android
    金币拿好
    Kilerd
        28
    Kilerd  
       2018-01-28 19:09:52 +08:00
    @popbones kotlin 现在多人用的原因就是因为可以跟 java 无缝对接,跳出 jvm 就毫无优势了
    amanbolatbalabek
        29
    amanbolatbalabek  
       2018-01-28 19:10:50 +08:00 via iPhone
    在我看来 golang 是第一:容易学习、github 项目多、很快。
    p.s.:aws lamda 开始支持 go 了!
    loveCoding
        30
    loveCoding  
       2018-01-28 19:11:02 +08:00
    @wweir #23 还是蛮多的 , 国内大厂很多用 go 写服务端,比如今日头条,360
    miketeam
        31
    miketeam  
       2018-01-28 19:13:23 +08:00
    @wweir 先说 3 个:moby,docker 相关,lantern。楼下补充
    williamx
        32
    williamx  
       2018-01-28 19:15:23 +08:00   ❤️ 1
    可问题是 java 都不是第一语言啊,javascript 才是。
    cxbig
        33
    cxbig  
       2018-01-28 19:21:02 +08:00
    语言无非是一个工具,工具的排名不重要,重要的是你拿它做出了什么东西。
    feverzsj
        34
    feverzsj  
       2018-01-28 19:21:02 +08:00
    @wweir docker
    Rasphino
        35
    Rasphino  
       2018-01-28 19:23:42 +08:00 via Android
    @popbones swift 能不能代替 java 我不懂…但是 golang 能替代 c ? kotlin 能替代 python ?我不信
    miketeam
        36
    miketeam  
       2018-01-28 19:34:58 +08:00 via iPhone
    c 都发展多少年了。c 他爹都想用 go 了
    asen1987
        37
    asen1987  
       2018-01-28 20:17:02 +08:00   ❤️ 37
    kingcos
        38
    kingcos  
       2018-01-28 20:18:34 +08:00
    第一不第一有啥区别吗。。= =
    mengzhuo
        39
    mengzhuo  
       2018-01-28 20:21:01 +08:00 via iPhone
    瞎扯淡

    PHP 最高!
    astaxie
        40
    astaxie  
       2018-01-28 20:24:22 +08:00   ❤️ 4
    听说 V2EX 又语言开战了,我当然是站在 Go 这一边的啊,哈哈

    第一,我们完成了第一步,Hello 中国,Go 官网回归中国 https://zhuanlan.zhihu.com/p/33239903
    第二,Go 目前在云计算已经成为了事实上的标准语言,大家可以去 https://www.cncf.io/官网看看目前的项目 90%都是 Go 开发的。
    第三,目前 Go 的第二发挥点是区块链应用,目前市场上的公司基本上都在用 Go 开发。

    最后无耻的插一个广告,GopherChina 2018 大会又要来了,你要想十年后不被抛弃,现在学起来还是来得及的,https://www.bagevent.com/event/1086224
    safeoy
        41
    safeoy  
       2018-01-28 20:30:36 +08:00 via Android
    Gopher 即将抵达战场
    itfanr
        42
    itfanr  
       2018-01-28 20:32:48 +08:00 via Android
    @astaxie 没啥意思,各有特长。我倒是希望在某些底层领域,rust 把 c 干掉…
    jfdnet
        43
    jfdnet  
       2018-01-28 20:33:37 +08:00
    十年这样的跨度 这怎么有答案啊
    safeoy
        44
    safeoy  
       2018-01-28 20:37:51 +08:00 via Android
    今天刚刷完 shadowsocks-go 的代码,共只有 2000 多行代码,觉得用 go 写网络程序生产力简直太强了
    Damon
        45
    Damon  
       2018-01-28 20:39:42 +08:00
    @astaxie 谢大是来火上浇油的么?
    wweir
        46
    wweir  
       2018-01-28 20:56:06 +08:00 via Android
    @loveCoding
    @feverzsj
    docker 相对而言,工程规模不算大

    @loveCoding
    服务端是挺多的,但这并没有说明项目的规模有多大
    to2false
        47
    to2false  
       2018-01-28 21:07:30 +08:00
    @Damon 看图莫名搞笑
    wq67200976
        48
    wq67200976  
       2018-01-28 21:13:42 +08:00
    @f2f2f 说的好 给你 10 分
    miketeam
        49
    miketeam  
       2018-01-28 21:14:47 +08:00 via iPhone
    java 用的多,在公司里面无外乎是先前那些系统需要维护。另外 go 的程序写完以后直接在其他平台跑。还有就是网上有第三方库可以用 go 开发 iOS,🙈。python 代码也可以用 go 程序直接转换成 go。现在好像就是 go 怎么转换 js 还不知道
    BlueFly
        50
    BlueFly  
       2018-01-28 21:19:24 +08:00
    zouyuyan.com 是说这个吗?
    janxin
        51
    janxin  
       2018-01-28 21:20:41 +08:00
    我觉得 Kotlin 可以干掉 Java
    janxin
        52
    janxin  
       2018-01-28 21:21:28 +08:00
    @miketeam 以后用 wasm 谁还关心能不能转 JS
    miketeam
        53
    miketeam  
       2018-01-28 21:24:52 +08:00 via iPhone
    gopherjs 可以将 go 代码转到 js
    nl101531
        54
    nl101531  
       2018-01-28 21:36:32 +08:00   ❤️ 2
    有大佬说说 go 没泛型,是怎么写业务复杂的项目的?
    miketeam
        55
    miketeam  
       2018-01-28 21:49:45 +08:00 via iPhone
    你可以通过接口,低成本解决范型问题。这是 go 的哲学
    congeec
        56
    congeec  
       2018-01-28 21:54:16 +08:00 via iPhone
    @miketeam 主流语言基本都能转成 js
    miketeam
        57
    miketeam  
       2018-01-28 21:54:47 +08:00 via iPhone
    你看,像我这样的菜鸟看几天就能明白这么多,go 就是这么简单直接。好多开源项目重来没有学过 go 都能慢慢看懂。go 的编码有规范工具。测试也很简单
    tt0411
        58
    tt0411  
       2018-01-28 21:54:56 +08:00   ❤️ 1
    没有泛型 /模板, 没有异常, 写业务代码非常难受, 但是写中间件和基础组件非常爽.

    Go 成为第一阵营的语言是必然的, 毕竟容器生态已经是 Go 的天下. 但是成为第一语言无望, 比如 大数据领域 Java 语言的地位没人可以动摇, 机器学习和人工智能领域 Python 已成为前端标准语言, 更不用说 Web 前端领域的独裁者 JavaScript 了.
    yanjinbin
        59
    yanjinbin  
       2018-01-28 22:06:17 +08:00
    @tt0411 异常的问题 ,go 吧 Java 的异常 分成 error 和 panic 是个很好的实践方式
    泛型 的话 ,用爽了 确实很爽 , 这点 Go 没有 Java 来的好
    写业务代码 处理边界问题上真的有点不够吧
    不过 我挺看好的 写基础组件
    miketeam
        60
    miketeam  
       2018-01-28 22:08:46 +08:00 via iPhone
    大数据现在国内从业人员的学历门槛好像都要重点大学硕士。如果 go 把安卓和 web 后台这块给 java 扳了,Java 岂不是会不会像现今的 oc 呢?
    nicevar
        61
    nicevar  
       2018-01-28 22:11:19 +08:00 via Android   ❤️ 1
    @miketeam 安卓这块没 go 什么事了,kotlin 比 go 更舒服
    rashawn
        62
    rashawn  
       2018-01-28 22:15:56 +08:00 via iPhone
    别逗 楼主
    miketeam
        63
    miketeam  
       2018-01-28 22:30:34 +08:00 via iPhone
    python 恶心就恶心在 2 和 3 还不兼容。输入命令还分 2、3,找项目还要认真了解哈是二还是三。还要左右格式看有没有对齐。各种下划线,头都晕了😒
    gowk
        64
    gowk  
       2018-01-28 22:43:34 +08:00 via Android   ❤️ 1
    没有银弹,业务层应用你就老老实实用 Java,这本来就不是 Go 的领域,现在不是学一种语言就可以吃遍天下的时代了,你需要成为 polyglotter
    MikeFeng
        65
    MikeFeng  
       2018-01-29 00:21:24 +08:00 via Android
    一大波培训班即将开课……
    MonoLogueChi
        66
    MonoLogueChi  
       2018-01-29 00:28:58 +08:00 via Android
    每一种语言都有自己的特点,都有自己最适合的领域。go 能不能成为第一语言不知道,但是我知道 C#一定会火
    est
        67
    est  
       2018-01-29 00:36:35 +08:00 via Android
    卧槽,这么多回复??
    gs139
        68
    gs139  
       2018-01-29 02:12:50 +08:00 via Android
    不说那些高深的,就说最直观的观感,go 不适合写业务,代码太多的噪音,让人没法把精力集中在业务上,搞算法做些底层工作还可以,不过 c 和 c++也不是吃素的。

    目前没有比 Java 更适合写业务逻辑的,在易读和严谨方面刚好平衡
    sammo
        69
    sammo  
       2018-01-29 07:48:37 +08:00 via iPhone
    缺点太明显。“没法反抗 便开始享受” 我做不到
    blless
        70
    blless  
       2018-01-29 08:15:05 +08:00 via iPhone
    为啥我用 go 写业务挺爽的……感觉我跟楼上几位对业务的理解有点不太一样。也就继承麻烦一点…不过都不是事,遇见 error 直接 panic 就是了,稍微封装一下 业务代码看起来还是很简洁明了的。实在要处理 error 另外封装一个 WithErr 的方法就是…
    yanjinbin
        71
    yanjinbin  
       2018-01-29 08:23:25 +08:00 via iPhone
    @blless 你业务边界问题和复杂需求都能用 go 很好处理?
    mritd
        72
    mritd  
       2018-01-29 08:33:49 +08:00 via iPhone
    十年内难,虽然很看好 go 也在学,但是本身就是干 java 的,java 这个体系太庞大了,某些东西已经深入企业,想要彻底换掉太难
    ycz0926
        73
    ycz0926  
       2018-01-29 08:47:34 +08:00
    说 php 第一的,总感觉像鸵鸟一样~
    blless
        74
    blless  
       2018-01-29 08:49:42 +08:00 via iPhone
    @yanjinbin 都是语言,我觉得我换语言照样写……其实不是很懂你们说的这些。至少现在的需求我用 go 实现跟其他语言没什么区别。也就继承 反射不太好用,在我看来已经够了,实在不行还有 unsafe,但是业务层一般没有这些,基本都是逻辑。
    aksoft
        75
    aksoft  
       2018-01-29 08:57:15 +08:00
    php 是世界上最好的语言
    miketeam
        76
    miketeam  
       2018-01-29 09:01:58 +08:00 via iPhone
    又来了…😹😹
    mooncakejs
        77
    mooncakejs  
       2018-01-29 09:02:48 +08:00 via iPhone
    再给一百年都不会
    ZSeptember
        78
    ZSeptember  
       2018-01-29 09:12:24 +08:00 via Android
    各有所长,go 写业务太繁琐了。现在 Java 的演进速度越来越快,kotlin 也不一定能够取代。
    tairan2006
        79
    tairan2006  
       2018-01-29 09:17:49 +08:00
    第一语言肯定是 Python 啊 23333
    realwangyibo
        80
    realwangyibo  
       2018-01-29 09:21:14 +08:00
    @bramblex 很可惜感谢只能点一次,说得太好了老铁。
    draguo
        81
    draguo  
       2018-01-29 09:27:31 +08:00
    现在这么浮躁的氛围,未来我不认为会出现一家独大的情况
    nullen
        82
    nullen  
       2018-01-29 09:28:26 +08:00
    不会。
    0915240
        83
    0915240  
       2018-01-29 09:58:59 +08:00
    擦 语言战
    zarte
        84
    zarte  
       2018-01-29 10:07:22 +08:00
    交叉编译这特征都没人说?弄爬虫程序编译完就可以用了,其他还要配环境,py 那还要看下版本多少的。jb 出的编译器已经很好了。引入包也很方便。
    第一应该是 js,go 能前几。
    puperSB
        85
    puperSB  
       2018-01-29 10:08:46 +08:00
    @wweir docker 算不算
    xiaoqi
        86
    xiaoqi  
       2018-01-29 10:18:49 +08:00
    流年似水,十年一晃就过去,恐怕那时候 Go 是不是第一语言也没那么重要了吧
    jiyinyiyong
        87
    jiyinyiyong  
       2018-01-29 10:26:32 +08:00
    Clojure(Script) 表示不服, 后端怎么搞, 都要有人写界面啊, 界面代码一写就没边了.
    dianso
        88
    dianso  
       2018-01-29 10:29:36 +08:00 via iPhone
    小看 e
    skadi
        89
    skadi  
       2018-01-29 10:33:47 +08:00
    恶心的异常处理 if err!=nil
    还没有泛型,标准库连 math.Maxint 都不提供
    蹩脚的 interface{}
    没有重载函数和运算符
    有 gc.导致根本不能 RAII.
    还有其他一大堆小毛病.
    反正我这个习惯了 cpp 的去写 go,感觉手脚被绑.
    glues
        90
    glues  
       2018-01-29 10:40:41 +08:00
    @blless 「遇见 error 直接 panic 」,我要是你的上司,今年的年终奖恐怕要给你扣了
    windyboy
        91
    windyboy  
       2018-01-29 10:44:16 +08:00
    go lang 目标只是在服务器上做好静态的事情

    语言排序这种事情,很无知

    就好像操作系统里那个是第一指令,ls 吗?有何意义?
    miketeam
        92
    miketeam  
       2018-01-29 10:47:10 +08:00 via iPhone   ❤️ 1
    @skadi 你是不知道某些语言,你可以随便写,但是不给你返回错误处理的地方,要你自己去判断。go 同时把 err 返回给你。真的很爽很优雅改好吧
    gkiwi
        93
    gkiwi  
       2018-01-29 10:51:11 +08:00
    @asen1987 #37 请 P 出来,C,Java,Python,JS 等
    pathbox
        94
    pathbox  
       2018-01-29 10:56:43 +08:00 via iPhone
    进前五是可能得
    blless
        95
    blless  
       2018-01-29 11:05:42 +08:00 via iPhone
    @glues 看完整回复好吗?我说的只是业务层,大部分的业务层都是高度封装的接口,原则上业务层上任何错误都不能将流程继续下去,你 err 不 panic 留着干嘛?偶尔要处理的我也说了处理情况。还有年终已经领了 不劳您操心,有问题尽管提,阴阳怪气难免招人喷
    wekw
        96
    wekw  
       2018-01-29 11:06:24 +08:00
    围观 11 楼杀爹论。

    张口就骂人,还敢实名制上网?
    wekw
        97
    wekw  
       2018-01-29 11:09:04 +08:00
    这是华南理工被黑的最惨的一次。充分表现了 JavaScript 技术对人性的扭曲。我说真的,我有好几个朋友,本来好好的人,写了两年 js 就开始跟别人大喷特喷,性格都变了。
    oyosc
        98
    oyosc  
       2018-01-29 11:09:12 +08:00
    说实话第一有点为难它了,golang 只能说是一个替代品,我觉得 JS 倒有可能第一
    miketeam
        99
    miketeam  
       2018-01-29 11:11:47 +08:00 via iPhone
    🤣🤣@wekw 我肚子笑痛了
    glues
        100
    glues  
       2018-01-29 11:19:43 +08:00
    @blless 代码写的垃圾还有理了,呵呵
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1813 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:30 · PVG 00:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.