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