
最近在开发一个新项目,技术选型阶段又一次陷入了 Rust 还是 Go 的问题。
实际用 Go 写起来非常顺手,并发模型简单明了,开发效率高,几乎没遇到什么语言层面的坑。从结果上看,项目运行稳定,性能也完全达标。
但不知道为什么,总是觉得如果换成 Rust ,内存安全、零成本抽象、模式匹配,可以让代码更稳健,用 Rust 就不会出问题。实际上,Rust 的开发节奏会拖慢进度,而且 Go 的工程表现已经足够好。
1 chunqicoder 3 天前 肯定是进度最重要啦,什么“内存安全、零成本抽象、模式匹配,可以让代码更稳健”对于进度来说都太虚幻了,对于普通业务来说进度才是唯一重要的,快速产出才是最重要的,我想起一个梗“当你不确定要不要买 mac 的时候说明你不需要 mac” 或者 当你不确定是不是必须要用 rust 的时候说明不需要 rust |
2 Niphor 3 天前 要是没 bug ,怎么完成 kpi |
3 xdeng 3 天前 还是太闲了 |
4 yplam 3 天前 除非是计算密集型、内存受限、大量 FFI 调用,不然还是 Go 实际点(大规模部署的除外) |
5 youyouzi 3 天前 @chunqicoder 哥,想去做手工了 |
6 BingoXuan 3 天前 go 能应对大部分抽象,并不需要 rust 。rust 是零成本抽象和大量抽象。比起 rust ,我更喜欢 zig 。但 zig 总是时不时来一个破坏性更新,真的很恼人。 |
7 chchwy 3 天前 GO 的,Rust 要解什? |
8 cmos OP |
9 94 3 天前 > 但不知道为什么,总是觉得如果换成 Rust ,内存安全、零成本抽象、模式匹配,可以让代码更稳健,用 Rust 就不会出问题。 Cloudflare 11/18 的大面积故障,不就是 Rust 写的业务代码有逻辑问题吗…… |
10 WithoutSugarMiao 3 天前 古法编程吗?能用 rust 就用吧,感觉之后 rust 可能会代替 go 的生态位。 |
11 fengyj 3 天前 锈批的幻觉: - rust 会取代 xxx - 上 rust 就没这问题了,然而很多时候问题不是全在语言本身,业务理解的 bug 才是根源 |
12 craftsmanship 3 天前 via Android @youyouzi 这都能给认出来 |
13 craftsmanship 3 天前 via Android @BingoXuan 还没推 1.0 。。别急 |
15 hingle 3 天前 经验丰富、或 rust 用熟练了,用哪个语言都可以,因为知道哪些地方比较容易出现内存安全问题。 |
16 werls 3 天前 要是不做开发,根本不会有纠结 go 还是 rust 的烦恼! |
17 ninjaJ 3 天前 如果让我再选一次,我可能会简单的项目用 Rust ,复杂的项目不用它。 作为一个老 Java ,可以说 Java 早已病毒入脑。之前在一个比较复杂的新项目中贸然使用 Rust ,为了兼顾灵活性、效率和内存安全,过早地使用了大量泛型和智能指针这些东西,认知负担特别重,踩了特别多的坑。 要是再让我选一次,什么能让我一把梭,我就选什么。只有在遇到切实的语言相关的性能瓶颈、安全漏洞需要**重构**时,再用 Rust 锦上添花。 慢工出细活才是入手 Rust 的正确使用方式。 |
18 MindMindMax 3 天前 Rust 的认知负担太重了,还是喜欢简洁的 Go 。 相比给自己(合作开发者)创造那么大的精神压力,我宁愿牺牲一丢丢性能。 珍爱生命,我用 Python ( Golang ) |
19 Smileh 3 天前 建议别搞程序员工作 |
20 zxjxzj9 3 天前 谁说的用 rust 就不会出问题,Cloudflare 一行 rust 代码把全世界互联网干碎一晚上不记得了? |
21 DingJZ 3 天前 遇到问题再说,php 也跑的好好的 之前遇到一个性能问题,让 ai 把一部分核心实现用 rust 重构后性能指数级提升 |
22 MapHacker 3 天前 "实际用 Go 写起来非常顺手,并发模型简单明了,开发效率高,几乎没遇到什么语言层面的坑。从结果上看,项目运行稳定,性能也完全达标。" 这已经是几乎完美的评价了,还换什么换 |
23 Gilfoyle26 3 天前 汇编性能最好,咋不用汇编写呢 |
24 simple2025 3 天前 cf 不也是用的 nginx 吗? |
25 charles0 3 天前 @simple2025 CF 用 Rust 自己实现了 Pingora 替代 nginx |
26 ano 3 天前 现在的要求是能跑就行 |
27 justtokankan 3 天前 业务大于技术 |
29 VPNHunter 3 天前 说了多少遍,不是高精尖项目,不要用 Rust ,不要用 Rust ,不要用 Rust ! |
31 hugozach 3 天前 那不如上 zig |
32 chambered 3 天前 Rust 的项目前期一定要有扎实的设计,否则后面加个小功能或者快速迭代你需要从头撸到底修改 |
33 adoal 3 天前 Rust 最有价值的项目是重写 sudo |
34 MacsedProtoss 3 天前 via iPhone 还是太闲了,rust 这玩意曲线又抖后期又埋坑的,不是邪教徒谁日常用这玩意 |
35 franklinyu 3 天前 via iPhone 作 Rust 好者你用 Go ,大部分目迭代才是硬道理 |
36 canteon 3 天前 钩子有屎加加 |
37 aroad 3 天前 @craftsmanship #12 添加个用户标签就好了 |
39 kandaakihito 3 天前 我看 Rust 语言搞得不错,性能极大优化,cargo 工具链与借用检查也更便捷。如果能真的开工项目,Rust 就是我们理想中的生产级语言。( |
40 yiqiao 3 天前 @zxjxzj9 #20 怎么还有人说是 Rust 的问题啊,核心原因又不是 Rust. 就如 #28 楼说的,是自己菜。对 clickhouse 不熟悉写的两眼一黑的代码 |
41 XIVN1987 3 天前 内存安全??带 GC 的语言也有内存安全这个问题吗?? rust 的内存安全不是相对于 C 、C++说的吗?? |
43 LightLolo 3 天前 业务工程类我先 GO 中间件 基建 底层支撑用 rust 用 rust 写业务也太痛苦了 |
44 dacapoday 3 天前 "实际用 Go 写起来非常顺手,并发模型简单明了,开发效率高,几乎没遇到什么语言层面的坑。从结果上看,项目运行稳定,性能也完全达标。" 都已经这样了,还有什么缺点?是因为 Go 的名字不叫 Rust ,所以嫌弃它吗? |
47 5waker 3 天前 原始 Go 服务性能完全够用,业务也在稳定运行,重构是完全没道理的。真有性能问题了,我都建议扩容,重构耗时耗人 |
48 supuwoerc 3 天前 cf 用 rust 不还是崩了吗,代码质量是看人的,不是看语言的,比如我,不关啥语言,我都能造屎山出来 |
49 IDAEngine 3 天前 Rust 和 Go 从来都不是问题,像微软的 asp 都可以稳定运行几十年不重启 |
50 dapang1221 3 天前 原神语言是这样的 |
51 dosmlp 3 天前 四字真言:能跑就行 别想其他乱七八糟的 |
52 ethusdt 3 天前 RIIR |
53 visper 3 天前 感觉 ai 写起 go 来更强一点。语法简单随便写,编译测试迭代快。rust 经常 ai 自己搞不过编译器然后就 clone. |
54 sankooc 3 天前 没有性能上的需求 没必要用 rust |
55 Geon97 3 天前 主要是现在挺稳定没有遇到什么问题啊。如果遇到了就再说,大不了重新 rust 写某个业务做组件 |
56 flytsuki 3 天前 |
57 Ketteiron 3 天前 @XIVN1987 带 GC 的语言,屎山堆起来肯定会遇到内存泄漏,而且排查困难,有可能是狗屎业务代码引发的,有可能是底层框架/库引发的,还有可能是编译器/解释器自己的问题(点名 nodejs)。 |
61 nrtEBH 3 天前 又不是不能用.jpg |
62 atskyline 3 天前 关键可能是能不能接受 GC ,不能接受 GC 的项目中基本上只能在 rust/C++/C 中选择了 |
63 coefu 3 天前 @chunqicoder 妞儿找的怎么样了? ![]() |
64 chunqicoder 3 天前 @coefu #63 最近健身没找了 ![]() |
65 xFrye 3 天前 如果一个项目是在纠结 go 还是 rust ,那你心中的答案应该是 go ,除非你是在纠结 rust c c++ |
66 94 3 天前 @5waker #46 ,只是对于 OP "觉得如果换成 Rust ,内存安全、零成本抽象、模式匹配,可以让代码更稳健,用 Rust 就不会出问题" 的回答。 程序稳健不稳健不是看语言的,大部分隐患都是在人上面。换语言去重构该拉的时候还是会拉,只说减少了拉的概率。其实就是 #11 的态度。 |
68 bsun 3 天前 2025 年度维护者峰会上,已经决定移除 Rust 的 "experimental" 标签。Rust 现在已经成为内核的核心组成部分。 https://lwn.net/Articles/1049831/ |
69 everhythm 3 天前 哎大部分业务项目,绕不开工程为主,出问题再修的模式,最终质量跟开发效率妥协 当然可以认为 rust 是理想型工具,但是不够现实,业务开发总是效率大于完美的 |
70 weiwenhao 3 天前 rust 该 unwarp 也是会崩溃,golang 加上 if xxx != nil 判断也是安全。 |
71 colourfulsai 3 天前 当你不知道用 Rust 还是 Go 的时候,或许你需要的是 Csharp…… |
72 snylonue 3 天前 go 也没啥内存安全问题吧 |
73 flyingghost 3 天前 实际用 Go 写起来非常顺手,并发模型简单明了,开发效率高,几乎没遇到什么语言层面的坑。从结果上看,项目运行稳定,性能也完全达标。 都这样了你还在想啥。。。非要我把 Go 改名 Gost 才满意吗。。。 |
74 w568w 3 天前 > 内存安全 Rust 的「内存安全」一直是相对 C/C++ 这种偏底层语言说的。 Go 、Java 、Python 、… 根本不存在内存问题,当然也是内存安全的。Rust 相比 Go 在这方面没有任何优势。 当然如果是说「空安全」,那又是另一件事了。 > 模式匹配 这个在 Go 2 讨论特别久了,用模式匹配势必会带入一堆新问题,所以看你的具体需求。 即使是 TypeScript 编译器这种重数据结构的活,微软也已经证明了能用 Go 写的。 |
75 Gilfoyle26 3 天前 @chunqicoder #1 咋不回复呢 ![]() |
76 IamUNICODE 3 天前 正在用 axum+seaorm+utoipa 做一个项目,已经交付第一版。 感觉其实还行,2017 年入门一次,今年花 3 个月练习语法,感觉架子打好后,增删改查业务和 ts 没什么区别,准备用这次经验总结一个通用项目模板自用。 |
77 edisonwong 3 天前 写的快+后人易维护才是硬道理 高性能又咋样,内存安全又能咋样.... 线上出问题,还不是人来修 bug ,用团队里最多人熟悉的语言 |
79 zzhirong 3 天前 @5waker 我感觉预设特征数量其实也没问题的, 正常情况下是不会超过那个值的, 但是, 处理逻辑有问题, 超过了直接 panic 的做法就是不对的, 在处理外部输入(自己无办法掌控)的值的时候都应考虑预期之外的情况, 和编程语言无关, 属于业务逻辑范畴了. |
81 DeWjjj PRO rust 不适合 crud ,但是非常适合基建,但是大部分人都在 crud ,还有一大部分在写 UI 。你做基建,自然得用,不做用啥?用 rust 做 crud ,不是给自己添堵?虽然我自己添堵过。 |
82 okcdz 3 天前 经常改,业务经常变动的代码不适合用 Rust,Rust 这种语言一改数据结构就要大改,几乎重写,没有 workaround 的空间,不适合写业务。 用来重写老的 C/C++ 库倒是合适,现在社区就在干这个事情。 |
85 homewORK 2 天前 建议 aliae rust go 程序最重要的权衡懂得取舍,对于你们来说性能不是问题的时候为什么会想起 rust 呢。不要提前优化,这是至理名言。 快速迭代等需要的时候你自然就知道该用什么了。 |
86 tudou1514 2 天前 不管用啥,不考虑当前技术团队的平均水平么?如果 10 个研发都会 go ,那就 go 。如果 rust 只有两三个会,再优秀也不用。 |
87 wKong753900 2 天前 go |