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

golang 的语言排名很低,并且 go 的生态也不丰富,为什么现在很多公司做一些核心业务系统的都使用 go 来实现?

  •  
  •   NiGuAnHeShang · 1 day ago · 6570 views

    现在入职的这家公司做的一些核心的业务系统,比如 SCRM 系统,以及各个事业部的一些业务系统都是使用 go 语言来实现。但是我个人认为 go 语言有自身的可取之处,但是对于一个核心业务系统,使用 go 语言反而提升了系统的复杂度。

    1. 是 go 自身的语言特性使然,还有就是 go 的生态对系统的各种要求也有一些没法满足的地方。
    2. 目前公司其实 go 语言的技术储备其实也不是很好,很多组件都需要自己开发和实现
    3. 很多外部接入的第三方对 go 的支持也不是很好
    4. 公司的技术经理和最高的技术负责人其实对 GO 的掌握也不是很好,只能说处于能做项目的阶段,但是对底层一些原理和更深层次的东西也是不是很理解

    你们身边有这种情况吗?都说说你的体验吧

    75 replies    2026-07-16 21:55:42 +08:00
    zls3201
        1
    zls3201  
       1 day ago via iPad   ❤️ 8
    完全就是张口就来 连 go 都掌握不了。别碰 it 技术了 真的
    zekeluii
        2
    zekeluii  
       1 day ago
    用 claude 寫 go 挺爽的
    anivie
        3
    anivie  
       1 day ago
    排名指的是什么,tiobe 之类的看不都挺高的吗
    linqiu919
        4
    linqiu919  
       1 day ago
    AI 对 Go 的掌握很好就够了
    NiGuAnHeShang
        5
    NiGuAnHeShang  
    OP
       1 day ago
    @zls3201 目前 7 年 java ,三年 go 。只是在对比两个语言的技术栈和生态后得出的自己一点不成熟结论。至于你说的张口就来这个没有搞懂。我们目前开发的地方有 java 也有 go 。只是单纯对比两个语言的生态和现状得出来结论
    TirionHo
        6
    TirionHo  
       1 day ago
    有 AI 了还说这些?
    Chemist
        7
    Chemist  
       1 day ago
    核心业务最重要的就是稳定和性能,GO 能满足这两点,所以复杂度就放后面了。并不是用 GO 就多高贵,只是他的优点满足了最迫切的需要。
    jackerbauer
        8
    jackerbauer  
       1 day ago
    因为他们没别的语言可选了
    dushixiang
        9
    dushixiang  
       1 day ago   ❤️ 1
    语言之争没意义了,现在应该是问 codex 和 claude 哪个牛逼
    jackerbauer
        10
    jackerbauer  
       1 day ago   ❤️ 2
    嫌 Java 重,嫌 PHP 挫,嫌 Python 慢。
    除了 Go ,他们还能选啥
    WaldenHorizon
        11
    WaldenHorizon  
       1 day ago   ❤️ 1
    aicoding 时代,语言本身越简洁越好,我看好 go 和 rust
    至于你提到的那些都不重要,技术团队赶紧拥抱 ai 吧
    w568w
        12
    w568w  
       1 day ago   ❤️ 6
    Go 低在哪?

    大于 1K star 的项目数量排名:

    1. Python
    2. TypeScript
    3. Go
    4. JavaScript
    5. C++
    6. Rust
    7. Java
    8. C
    9. C#
    10. PHP

    都把 JS 反超了

    来源: https://langpulse.top/
    Rickkkkkkk
        13
    Rickkkkkkk  
       1 day ago
    字节/google 后端大多都是 golang
    46fo
        14
    46fo  
       1 day ago   ❤️ 1
    内存涨价 Java 转 Go
    jetsung
        15
    jetsung  
       1 day ago
    Go 的生态还不够丰富?
    huangpingdong
        16
    huangpingdong  
       1 day ago
    @jetsung 确实不够丰富啊人家说的没错
    alamaya
        17
    alamaya  
       1 day ago
    内存太贵了,go 合适,内存继续涨下去后面可能 rust 更好,反正 ai 写啥都是写
    zengxs
        18
    zengxs  
       1 day ago
    tiobe index 那个排名说明不了啥,C/C++ 分别是第二第三名,但是大多数公司你都遇不到写 C/C++ 的人
    xiuming
        19
    xiuming  
       1 day ago
    go 太简单了 根本不需要没事就去 Google 、Baidu 搜
    micean
        20
    micean  
       1 day ago
    我懂你的意思,最简单的事情,java 项目的日志开箱即用,丰富到不行,因为大家都标准化了
    ylsc633
        21
    ylsc633  
       1 day ago
    go 排名不低了

    不知道你说的具体生态是啥,除了一些公司内置的,大部分基本都有 go 版本的,常用的中间件基本都有的吧

    go 曾是我主力语言,我转过来就花了一个下午

    现在 AI 时代,什么语言就无所吊谓了
    heftyMan
        22
    heftyMan  
       1 day ago
    你说你做 Java 的,难道不知道 java 多烂?
    huage
        23
    huage  
       1 day ago
    再次印证程序员思维不适合做管理和做生意
    cozof
        24
    cozof  
       1 day ago via iPhone   ❤️ 1
    只需一个二进制,效率高、省内存、省空间。
    nc
        25
    nc  
       1 day ago
    @Rickkkkkkk Google 后端绝大部分都是 C++,也有很多 Java
    Weixiao0725
        26
    Weixiao0725  
       1 day ago   ❤️ 1
    AI 时代从省 token 角度考虑,java 太啰嗦了,费 token ,所以用 go :D
    aicong2021
        27
    aicong2021  
       1 day ago
    Go 的生态也很丰富,而且简洁高效
    liuliuliuliu
        28
    liuliuliuliu  
    PRO
       1 day ago
    单说你们公司,那就是跟风呗,其实 go 更适合写基础设施,业务系统如果也用 go 纯粹嫌弃自己工作效率太高了
    mooyo
        29
    mooyo  
       1 day ago
    腾讯,字节大部分项目用 Go 。
    mooyo
        30
    mooyo  
       1 day ago
    不理解你说的生态差是什么,是你想要的一堆轮子没法开箱即用?对上一点规模的公司这些根本不是问题。

    如果你想要全托管的宝宝式服务,为什么不用.net 呢?
    strobber16
        31
    strobber16  
       1 day ago
    微内核
    ota
        32
    ota  
       1 day ago
    @jetsung 相比 python 和 nodejs 來說,不能即插即用,得編譯,稍微有點麻煩。
    sxyclint
        33
    sxyclint  
       1 day ago   ❤️ 3
    Java 输出费 Token ,部署废内存,一个比一个贵,没性价比
    jinsongzhaocn
        34
    jinsongzhaocn  
       1 day ago
    go 的阵地就是云原生, 但是 rust 和 java 在云原生强势增长, go 和 java 在企业应用中,各自都有一块不可撼动的部分. 至于其他领域,数据科学/深度学习( Python 垄断)、Web 前端/跨平台( JS/TS 垄断)以及硬实时/底层系统编程( C/C++/Rust 垄断),这些领域没有突破的可能. 现在唯一不利的是 java 在 AI 方面的发展势头是超过 go 的.go 在 AI 上还有没有后手, 这个是这次精彩的竞争里的大看头了
    sn0wdr1am
        35
    sn0wdr1am  
       1 day ago
    1. 云原生,Docker 就是基于 Golang 搞起来的。
    2. 跨平台特性好。一套代码,能生成各种系统的软件包。https://github.com/snowdreamtech/UniGo/releases/tag/v0.0.6
    3. 学习难度低,上手简单。
    4. 还要什么自行车啊?站起来蹬就完事了。
    5. 有 AI 呢?用好 AI ,比什么都强。
    Frankcox
        36
    Frankcox  
       1 day ago
    生态不丰富不知道你指的什么,go 在容器/k8s 这块说是一统天下有些夸张,但说半壁天下就保守了。
    jetsung
        37
    jetsung  
       23h 51m ago
    @ota 你站这角度来确实没错,那我站别的角度来:Go 直接编译成二进制,在别的电脑,只需要复制过去就能直接使用了,而 python / node 还得安装环境。
    kandaakihito
        38
    kandaakihito  
       23h 40m ago
    先问是不是,再问为什么
    Hyschtaxjh
        39
    Hyschtaxjh  
       23h 30m ago via iPhone
    反正都是 AI 拉 業務為啥不能 GO
    icyalala
        40
    icyalala  
       23h 22m ago
    好久不见的讨论哪个语言好的帖子,竟然有点怀念了
    就像同学聚会大家已经讨论房子孩子什么的,突然看到两个人在为 C 罗梅西吵架
    lesismal
        41
    lesismal  
       22h 45m ago   ❤️ 2
    通常主要有两种情况不适合用 go:
    1. 极致的性能场景
    2. 无法及时招聘到足够的 gopher ,抢市场优先所以可以放弃 go 或者让渡一部分 go 的份额给其他语言。字节飞书好像就是如此,最早大量招 go 但招不到那么多靠谱的所以又补充了很多 java


    认为 go 不行的人通常有两点技术上的不足:
    1. 对底层一些原理和更深层次的东西也是不是很理解,系统知识太浅
    2. 只知道自己原来语言技术栈之类的所谓社区全家桶,但并不真的懂软件工程的工程性


    OP 评价公司领导”对底层一些原理和更深层次的东西也是不是很理解“、但却觉得 go 不够好,说明 OP 自己首先“对底层一些原理和更深层次的东西不是很理解”
    OP 说到 go 生态不丰富,说明对 go 社区不熟悉、对工程性也不是真的懂

    建议 OP:还是听领导的吧
    CuteGirl
        42
    CuteGirl  
       16h 40m ago
    不是 go 这生态还不够丰富 ? 你这张口就来呀
    zuokanyunqishi
        43
    zuokanyunqishi  
       16h 8m ago
    @lesismal 工程性,说到本质了
    lscho
        44
    lscho  
       15h 26m ago via Android
    不用 go 用啥?用 java ?
    DefoliationM
        45
    DefoliationM  
       15h 10m ago via Android
    “无语,跟你说不下去,典型的 Java 思维”
    echoZero
        46
    echoZero  
       14h 55m ago
    单纯就是你们的业务不合适而已,在你们体系架构下不合适。之前很多技术生态 护城河太高。但是技术日新月异,新的技术生态,对于 go 很友好了
    labubu
        47
    labubu  
       14h 53m ago
    Go 的生态还不够丰富? 我去,你来写 c++试试看
    burnsby
        48
    burnsby  
       14h 40m ago
    go 挺好的啊, 我们内部开发了一个 devops 平台, AI 撸 3 天就完成了, 单文件部署, 跑起来内存占用 40MB 不到...这全是优点好吧, 而且 go 的标准库很强大, 啥框架都不要就能拉起大部分业务了
    luojiedev
        49
    luojiedev  
       14h 36m ago via iPhone
    你是不是把 2016 年的帖子粘到 2026 年来发了?
    lmmlwen
        50
    lmmlwen  
       14h 31m ago
    go 不就还是 web2.0 时代的产物,说白了就是 10 年起互联网末期很多公司淘汰了 php ,换成了 golang ,这玩意儿的衰落和 php 轨迹差不多
    layxy
        51
    layxy  
       14h 24m ago
    性能不错,编译快,产物小,启动快,语法简单,包依赖都是源码,可审计,开源生态目前我觉得还挺好,这个优点目前其他语言不能兼顾
    ixiaohei
        52
    ixiaohei  
       14h 19m ago
    系统复杂性其实跟语言没有关系;我是从 java 转 golang ;两种语言的编程模式确实有很大的差异,每种语言在思维上有很大的惯性,早期转换也是有很多不理解,和把一些 java 的惯用法带到 golang 。

    java 的生态比较好,这个是因为 java 出来比较早,golang 后面也在一些领域补齐短板,不是必须要所有领域都补齐才能使用 golang ,有些业务需要的技术领域就那么大,并不需要全方位的生态。

    golang 比 java 优秀的有很多地方,比如语法,构建系统,框架层面知识掌握并不是需要很多,真的是上手简单,除了 1.18 增加范型,语法十几年没有变,对于新人上手和对于脱离编码的管理层来说非常友好,在 code review 上非常轻松,一天或者一周就能学会的语法可以用十几年。java 我都不想吐槽它的语法、构建系统的学习、国内企业级应用开发重度的框架使用;

    另外在 cloud native 方面,golang 优势还是很强的,节约内存,几乎秒启动。这一块 java 在 AOT 或者 native 还是没有看到大规模生产级实践。以前业务基于 spring boot 框架开发,为了扩容快秒启动各种限制扫描 jar 范围还是没能够解决启动慢的问题。如果服务质量和流量稳定还行,真碰到大规范 crash ,或者流量激增,在动态扩容方面基于 spring boot 那套还是缺陷慢严重的
    补充一些研发体验上的,切换到使用 golang 几年根本没有做过类似 jvm gc/内存调优那种事。jvm 光去学习 gc 算法、原理和调优参数就够花费很多时间
    dbskcnc
        53
    dbskcnc  
       14h 11m ago
    我也是 all in go,除非能证明 go 不行的地方再用其它的,目前只有一些 codec 是 c/c++的,这个 go 确实没,有些不方便集成到程序中的,直接 rpc 过去,目前用得很舒服。 你这个 “使用 go 语言反而提升了系统的复杂度“ 论断有点主观了,这个跟语言没太大关系啊,你可以说 go 啰嗦了点,但是这点其实我也一点也不认同,那些高级语法糖和框架糖才是更加让人脑疼的枷锁(伤脑,除非你把它们变成肌肉记忆甚至变成它的形状),用 go 就是很自然,谁都能懂,并且现在各家的 ai 也很懂,如果手敲代码,go 确实需要多打好多下,但是现在写代码都不需要你动手了
    loading
        54
    loading  
       14h 10m ago via Android
    以前不看这个排名,直接看招聘需求的排名,现在看 ai 熟悉度排名。
    FrankAdler
        55
    FrankAdler  
       14h 9m ago via Android
    你无非就是说想用 Java 呗,大家偏不惯着着你,而且以后 Java 的使用率只会越来越低。
    encro
        56
    encro  
       14h 4m ago
    我用 php 因为简单

    我用 python 因为简单

    我用 go 因为简单
    encro
        57
    encro  
       14h 3m ago
    任何东西,想要变得流行,离不开上手容易出活快。
    hiboshi
        58
    hiboshi  
       13h 51m ago
    你这个里面缺少论据。说的不够具体,比如具体是什么特性导致无法满足业务,这样大家才好分析
    hailaz
        59
    hailaz  
       13h 49m ago
    看看这两个能不能帮到你
    https://goframe.org/
    https://linapro.ai/zh/
    TophTab
        60
    TophTab  
       13h 18m ago
    @alamaya #17 我也觉得是。我的独立项目都打算用 go 重写。
    dacapoday
        61
    dacapoday  
       13h 0m ago
    原来是 java 仔,难怪看不懂.
    Geon97
        62
    Geon97  
       12h 54m ago
    [go 学长压力 va 学弟名场面] https://www.bilibili.com/video/BV1UmUsBTEgS/?share_source=copy_web
    看到这个帖子的讨论 想到了这个视频
    mightybruce
        63
    mightybruce  
       12h 28m ago
    现在都是自然语言天下,还争论这个,java 仔,针对大模型对不同语言生成速度和 token 费率以及平均花费 才是对语言评价的王道


    https://mp.weixin.qq.com/s/DmTF_ZBe0zmphOuN9YQ55g
    nilaoda
        64
    nilaoda  
       12h 15m ago
    go 除了极度依赖 SIMD 和底层内存控制的软件没法搞以外,别的生态没啥问题吧
    madmen
        65
    madmen  
       12h 15m ago
    什么语言都是一把梭,哪种适合用哪种。另外,AI 时代还在讨论语言,还能赶上车吗?
    ota
        66
    ota  
       11h 51m ago
    @jetsung python 也能编译成二进制(打包解释器-伪)啊。这个二进制优势其实 go 并不大了,主要体现在无 cgo ,无系统依赖这类情况下才有“复制过去就能直接使用”

    还有一个,容器一打包,没人在意环境部署了,裸机的情况很少,后面都是加入 k8s 实现业务扩展了。反正我自己用服务器也是 docker 为主,很少自己运维了。这个时候 py 和 go 的部署压力这点区别又被缩小了。

    还有就是 go 的开发成本比 python 这类高很多,生态肯定 python+node.js 占优。

    不管怎么说,ai 世纪,vibe 横行,用哪个问题根本不大,一般都是混用,这样两边生态都占了。
    ota
        67
    ota  
       11h 44m ago
    @mightybruce 这角度中肯,冥冥之中也是这么安排的,py 为主,go/rust 为辅写 mcp 。
    Linxing
        68
    Linxing  
       11h 4m ago
    Java 迁移到 Golang 每年服务器费用省 70%以上
    NiGuAnHeShang
        69
    NiGuAnHeShang  
    OP
       10h 59m ago
    看了大家的回复,我补充说明一下:我并不是认为 Go 不能开发核心业务,也不是单纯想争论 Go 和 Java 谁更好。

    我真正担心的是,公司的技术选型是否与业务特点、团队能力以及现有基础设施相匹配。

    我们目前做的是与金融相关的业务。公司下面的每个事业部需要相对独立地展业,同时每个事业部又有自己的业务系统,需要与总部的 SCRM 进行对接。因此,总部的系统不只是一个普通的管理系统,而是承担了客户、销售、组织、权限、业务协同和系统集成等核心职责。

    同时,由于业务涉及金融产品,系统每年还需要接受审计。这意味着系统不仅要能运行,还要长期保证权限边界清晰、操作过程可追溯、数据变更可审计、系统行为可解释。

    所以从系统设计和维护的角度,我更加看重的不是短期开发速度或者单纯的运行性能,而是系统未来五年甚至更长时间内的可维护性、稳定性和可靠性。

    Go 的优势很明确,例如部署简单、资源占用低、并发能力强、语法相对简洁。但“语法简单”并不代表大型业务系统的工程复杂度会消失。但是我们目前仍然需要解决多租户、跨事业部数据隔离、总部数据权限、事务一致性、审计日志、链路追踪、幂等、错误治理以及第三方系统集成等问题。

    Java/Spring 的优势,是很多企业级问题已经形成了相对成熟的框架、规范和实践。Go 当然也能实现,但通常更依赖团队自行建设基础组件和工程体系。

    我担心的正是这一点:如果团队缺少成熟的 Go 技术积累,技术负责人也没有大型 Go 企业业务系统的实践经验,那么最后可能只是重新实现一套 Spring 已经解决过的能力,同时还要承担这些内部组件未来多年的维护、升级和审计成本。

    所以我想讨论的核心并不是“Go 能不能做系统”,而是:

    公司是否已经具备成熟的 Go 工程体系,自研基础组件是否值得长期维护,缺少的 SDK 和生态能力是否会持续增加成本,以及在金融业务和审计要求下,使用 Go 后的稳定性、可靠性、开发效率和维护成本是否真的优于现有方案。

    如果业务以网关、长连接、推送、高并发接口和基础设施为主,我认可 Go 很合适。但如果系统核心是复杂权限、多租户、跨事业部协作、审计、报表以及大量第三方系统集成,那么我认为至少应该认真评估 Java/Spring 在长期维护上的综合优势。

    大厂使用 Go 也不能直接证明普通公司同样适合,因为大厂通常拥有完整的平台工程、中间件和基础设施团队。

    我承认原帖举例不够具体。我的重点不是否定 Go ,而是想讨论:对于这样一个承担金融业务、总部协同和审计责任的核心系统,在当前团队和工程基础条件下,选择 Go 是否真的是一个经过充分评估的长期决策。
    hosea3000
        70
    hosea3000  
       10h 17m ago
    纯好奇,V 站骗评论的收益是什么?
    jetsung
        71
    jetsung  
       10h 14m ago
    @ota 按你这么说,PHP 、NodeJS 也一样可以 build 。这种“旁门左道”问题不是一般的多。

    我也一样用 Docker 来部署了 40 多个服务,然而 Python 、NodeJS 的项目,所占资源不是一般的多。比如 Dokploy 、qinlong ,linkding 、litellm 之类的就非常重。部署后,启动时间都需要好几分钟,因为需要从 pypi 拉依赖(如果不需要拉的,镜像中内置的,镜像尺寸不是一般的大)。而 Go / Rust 之类的,就不需要这么麻烦。自己构建一个 Docker image 也一样,非常简单,直接两个阶段就行了(构建、部署),甚至部署阶段的基础镜像可以直接使用 scratch:lastet 、alpine:lastet 、gcr.io/distroless/cc-debian13 ,镜像几何级地缩小。
    而且,Vibe 盛行时期,开发成本更是可以忽略不计的。试想一下,40 多个服务,如果是 python / nodejs 的服务,容器尺寸至少要 1G ,VPS 上部署,单纯就空间来说,成本就暴涨了,更不用说内存占用了。
    ximaoyang
        72
    ximaoyang  
       10h 7m ago
    我见过很多项目的选型是 RDD 的 Resume driven development 。你懂的
    ntdll
        73
    ntdll  
       9h 52m ago
    >> 对于这样一个承担金融业务、总部协同和审计责任的核心系统,在当前团队和工程基础条件下,选择 Go 是否真的是一个经过充分评估的长期决策。

    如果你不能决定技术选型,那么这个问题不是你要考虑的,螺丝钉就考虑螺丝钉的事情,拿白面的钱,操白粉的心,是没有必要的,就是今天写完,明天炸了,也和你没关系。五年,十年以后,你在不在这个公司,你是否还负责相关业务,都还不一定。

    如果你能够影响这个技术选型,把你的疑虑抛出来,丢给你公司的决策层。如果你就是主要负责人,你认为 Java 更合适,就在决策层明确表达:必须给我用 Java ,有锅,我背,硬要用 Golang ,我背不了锅

    ---

    很多事情,压根就不是技术问题,是屁股决定脑袋的事情。

    比如老领导混了很多年,年会上没东西吹了,要求用个新语言写个啥,年底就是拥抱新技术,大胆革新,年后调走去其他地方了
    zerovoid
        74
    zerovoid  
       7h 51m ago
    你的问题,

    你只要拿一个你们公司的具体案例出来,
    然后说明 java 能搞,但是 go 不能搞,或者不好搞就行了。

    不然不就是一堆鸡同鸭讲的东西。
    dingyaguang117
        75
    dingyaguang117  
       2h 13m ago
    有这种感觉,Go 的生态确实没有 Java 开箱即用。确实需要自己造很多轮子,主要是自己造出的也不太好用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2524 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 224ms · UTC 16:09 · PVG 00:09 · LAX 09:09 · JFK 12:09
    ♥ Do have faith in what you're doing.