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

NiGuAnHeShang 2026-07-15 16:46 1

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



  1. 是 go 自身的语言特性使然,还有就是 go 的生态对系统的各种要求也有一些没法满足的地方。

  2. 目前公司其实 go 语言的技术储备其实也不是很好,很多组件都需要自己开发和实现

  3. 很多外部接入的第三方对 go 的支持也不是很好

  4. 公司的技术经理和最高的技术负责人其实对 GO 的掌握也不是很好,只能说处于能做项目的阶段,但是对底层一些原理和更深层次的东西也是不是很理解


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

最新回复 (71)
  • zls3201 07-15 16:57
    1
    完全就是张口就来 连 go 都掌握不了。别碰 it 技术了 真的
  • zekeluii 07-15 17:01
    2
    用 claude 寫 go 挺爽的
  • anivie 07-15 17:05
    3
    排名指的是什么,tiobe 之类的看不都挺高的吗
  • linqiu919 07-15 17:06
    4
    AI 对 Go 的掌握很好就够了
  • NiGuAnHeShang 楼主 07-15 17:09
    5
    @zls3201 目前 7 年 java ,三年 go 。只是在对比两个语言的技术栈和生态后得出的自己一点不成熟结论。至于你说的张口就来这个没有搞懂。我们目前开发的地方有 java 也有 go 。只是单纯对比两个语言的生态和现状得出来结论
  • TirionHo 07-15 17:12
    6
    有 AI 了还说这些?
  • Chemist 07-15 17:13
    7
    核心业务最重要的就是稳定和性能,GO 能满足这两点,所以复杂度就放后面了。并不是用 GO 就多高贵,只是他的优点满足了最迫切的需要。
  • jackerbauer 07-15 17:13
    8
    因为他们没别的语言可选了
  • dushixiang 07-15 17:14
    9
    语言之争没意义了,现在应该是问 codex 和 claude 哪个牛逼
  • jackerbauer 07-15 17:14
    10
    嫌 Java 重,嫌 PHP 挫,嫌 Python 慢。
    除了 Go ,他们还能选啥
  • WaldenHorizon 07-15 17:15
    11
    aicoding 时代,语言本身越简洁越好,我看好 go 和 rust
    至于你提到的那些都不重要,技术团队赶紧拥抱 ai 吧
  • w568w 07-15 17:16
    12
    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 07-15 17:32
    13
    字节/google 后端大多都是 golang
  • 46fo 07-15 17:33
    14
    内存涨价 Java 转 Go
  • jetsung 07-15 17:37
    15
    Go 的生态还不够丰富?
  • huangpingdong 07-15 17:44
    16
    @jetsung 确实不够丰富啊人家说的没错
  • alamaya 07-15 17:45
    17
    内存太贵了,go 合适,内存继续涨下去后面可能 rust 更好,反正 ai 写啥都是写
  • zengxs 07-15 17:45
    18
    tiobe index 那个排名说明不了啥,C/C++ 分别是第二第三名,但是大多数公司你都遇不到写 C/C++ 的人
  • xiuming 07-15 17:49
    19
    go 太简单了 根本不需要没事就去 Google 、Baidu 搜
  • micean 07-15 17:55
    20
    我懂你的意思,最简单的事情,java 项目的日志开箱即用,丰富到不行,因为大家都标准化了
  • ylsc633 07-15 18:01
    21
    go 排名不低了

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

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

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

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


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


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

    建议 OP:还是听领导的吧
  • CuteGirl 07-16 07:28
    42
    不是 go 这生态还不够丰富 ? 你这张口就来呀
  • zuokanyunqishi 07-16 08:00
    43
    @lesismal 工程性,说到本质了
  • lscho 07-16 08:42
    44
    不用 go 用啥?用 java ?
  • DefoliationM 07-16 08:59
    45
    “无语,跟你说不下去,典型的 Java 思维”
  • echoZero 07-16 09:13
    46
    单纯就是你们的业务不合适而已,在你们体系架构下不合适。之前很多技术生态 护城河太高。但是技术日新月异,新的技术生态,对于 go 很友好了
  • labubu 07-16 09:15
    47
    Go 的生态还不够丰富? 我去,你来写 c++试试看
  • burnsby 07-16 09:28
    48
    go 挺好的啊, 我们内部开发了一个 devops 平台, AI 撸 3 天就完成了, 单文件部署, 跑起来内存占用 40MB 不到...这全是优点好吧, 而且 go 的标准库很强大, 啥框架都不要就能拉起大部分业务了
  • luojiedev 07-16 09:32
    49
    你是不是把 2016 年的帖子粘到 2026 年来发了?
  • lmmlwen 07-16 09:37
    50
    go 不就还是 web2.0 时代的产物,说白了就是 10 年起互联网末期很多公司淘汰了 php ,换成了 golang ,这玩意儿的衰落和 php 轨迹差不多
  • layxy 07-16 09:44
    51
    性能不错,编译快,产物小,启动快,语法简单,包依赖都是源码,可审计,开源生态目前我觉得还挺好,这个优点目前其他语言不能兼顾
  • ixiaohei 07-16 09:49
    52
    系统复杂性其实跟语言没有关系;我是从 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 07-16 09:57
    53
    我也是 all in go,除非能证明 go 不行的地方再用其它的,目前只有一些 codec 是 c/c++的,这个 go 确实没,有些不方便集成到程序中的,直接 rpc 过去,目前用得很舒服。 你这个 “使用 go 语言反而提升了系统的复杂度“ 论断有点主观了,这个跟语言没太大关系啊,你可以说 go 啰嗦了点,但是这点其实我也一点也不认同,那些高级语法糖和框架糖才是更加让人脑疼的枷锁(伤脑,除非你把它们变成肌肉记忆甚至变成它的形状),用 go 就是很自然,谁都能懂,并且现在各家的 ai 也很懂,如果手敲代码,go 确实需要多打好多下,但是现在写代码都不需要你动手了
  • loading 07-16 09:58
    54
    以前不看这个排名,直接看招聘需求的排名,现在看 ai 熟悉度排名。
  • FrankAdler 07-16 09:59
    55
    你无非就是说想用 Java 呗,大家偏不惯着着你,而且以后 Java 的使用率只会越来越低。
  • encro 07-16 10:04
    56
    我用 php 因为简单

    我用 python 因为简单

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    我承认原帖举例不够具体。我的重点不是否定 Go ,而是想讨论:对于这样一个承担金融业务、总部协同和审计责任的核心系统,在当前团队和工程基础条件下,选择 Go 是否真的是一个经过充分评估的长期决策。
  • hosea3000 07-16 13:51
    70
    纯好奇,V 站骗评论的收益是什么?
  • jetsung 07-16 13:54
    71
    @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 上部署,单纯就空间来说,成本就暴涨了,更不用说内存占用了。
* 帖子来源V2EX
返回