一些疑惑,为什么 rust 干不过 go 呢

2023-06-17 17:28:50 +08:00
 vincent7245

先叠 buff

观点

个人感觉 rust 的难点就是理解其变量所有权、引用、借用的思想,这一关过了也就没什么难度了。而且 rust 的枚举、泛型、面向对象的特性要比 go 完善很多

所以为什么 rust 不如 go 火呢

随便骂吧

个人愚见,不同观点可以随便说,别骂的太难听就行

17065 次点击
所在节点    程序员
118 条回复
awolf
2023-06-18 08:50:11 +08:00
一部分写 php 的转去写 GO 了
chendl111
2023-06-18 08:54:43 +08:00
simple is better
keymao
2023-06-18 09:12:43 +08:00
干不过 go ? 何出此言,论据何在。 顺带一提,Windows 的新的预览版内核用 Rust 重写了,并即将发布。
keymao
2023-06-18 09:16:05 +08:00
@786375312123 未来的几个流行的操作系统内核都会用 rust 重写一遍。Windows 11 的内核据说已经用 rust 重写了。
dynos01
2023-06-18 09:37:46 +08:00
@keymao 这是个误区,目前只有一小部分用 Rust 重写了。Linux 那边目前的规划也只是用 Rust 重写一部分驱动等,而没有重写已有东西的计划。

我当前 Rust 和 Go 双修,Rust 用的还多一些,干不过就是干不过,大大方方承认就是。学习难度大,用途没有 Go 明朗,还有那个离谱的编译速度(手头有项目 Rust 和 Go 对半,一次构建 95% 的时间都在 Rust 上),劝退新人难免的事。

两边各有好处就我都要,合适的地方用合适的工具而已。
BBCCBB
2023-06-18 09:43:22 +08:00
@gamexg rust 有协程的, 还是 stackless 的, 比如 tokio. rust 协程也是基于 async/await 的,

golang 的协程是 stackfull 的, 对于超大量协程, 调度起来压力很大, 所以每个 socket 开两个协程这个量上去了就玩不了了..

但 rust 可以这样玩, 每个 socket 开两个协程, 支持超大量的量级
abcbuzhiming
2023-06-18 09:47:35 +08:00
@Leviathann 它和 C 有什么关系我不知道,其实当我看到这段历史的时候,我也挺奇怪,函数式语言 haskell 是怎么能和过程式语言 C 放在一起比的,然而当时的学术界就是这么一个看法,觉得前者优雅聪慧,后者愚蠢丑陋,前者必是下一个时代的编程语言荣光巴拉巴拉。。。
xingjue
2023-06-18 10:03:29 +08:00
rust 凉了
butterls
2023-06-18 10:28:07 +08:00
rust 的生命周期标注的设计路数本来就不是给程序员思维设计的,这是给玩数学那帮人搞的符号标记当然看起来丑陋了
lesismal
2023-06-18 10:40:21 +08:00
go 和 rust 是龙兄虎弟左邻右李伯牙子期,不要把他俩对立,而是双剑合璧干死其他静态类型语言:
1. 用 go 处理性能不是最敏感但是性能和开发效率都很重要的很多偏应用业务比如 CURD 、以及少量系统编程业务比如云原生
2. 用 rust 去搞安全要求高的性能要求强的去干掉 c/cpp 为主,干掉其他为辅

应该一起喜欢这两个
yangxin0
2023-06-18 10:43:15 +08:00
语言而已,还是从项目的角度去挑选语言。
tairan2006
2023-06-18 11:03:04 +08:00
流行的语言其实都是简单的,java/js/py/php/go/c ,就连 cpp 很多人就是 c with class 写。 因为大部分人编程是手段不是目的,领导也要考虑招人方便。
alsas
2023-06-18 11:07:07 +08:00
go rust 双修就完事了
Tanix2
2023-06-18 11:46:54 +08:00
用 Rust 比较多,Go 就用过一点点,就说一下我对 Rust 的感受。

我喜欢 Rust 的点:
1. 小写+下划线命名
2. 后缀式调用写着方便(不用倒回去加函数再加左右括号),格式化自动分行
3. trait 的设计思想,一个东西是什么,就取决于它的 trait (一个东西看起来像鸭子、游泳像鸭子、叫声像鸭子,那么它可能就是只鸭子)(虽然我基本不用)
4. crates.io 提供的丰富的库(很多比 std 性能高,功能也强,比如 crossbeam_channel/mpsc::channel )
5. cargo 提供的便捷构建体验
6. 方便、无忧(编译过的话)的并发
7. 高性能( blazing fast!)
8. 所有权机制让我掌控每个变量
9. 方便的格式化(默认左大括号不另起一行正合我意)
10. 编译器帮我检查出来很多 bug
11. std 丰富的函数(如 split_ascii_white_space ,虽然很长吧...)
12. 某些时候函数式调用很舒服(大多时候还是循环用着爽,不必拘泥于一种模式)
13. 方便的测试(虽然我不怎么写测试)
14. 方便的文档,函数上用 ///注释,还可以用 markdown 语法,里面的代码还可以纳入测试
15. 强大的类型系统,特别是 enum ,表达能力很强
16. 编译型语言,出来的可执行文件不需要额外的环境,顶多需要一些动态链接库
17. 可以使用 C/C++写的很多库,如 OpenCV 、GStreamer 等,都有相应的 bindings
18. Option 和 Result 非常方便
19. match 模式匹配表达能力很强

我不喜欢 Rust 的点:
1. 编译太慢(极其重要的一个缺点)
2. move || {}的时候,经常需要在外面定义一个 clone 的新变量
3. 宏内的代码没法格式化

总的来说,Rust 的大多数设计都很符合我对编程语言的审美,所以我很喜欢 Rust 。
e3c78a97e0f8
2023-06-18 12:24:01 +08:00
在翻墙领域,完全不受商业考虑影响,用 Rust 写的工具总是比 Go 写的工具开发进度慢很多,features 也少很多。虽然 Rust 版本通常性能更好,但是缺了 features 根本用不了。
lanlanye
2023-06-18 12:54:55 +08:00
学过 Rust ,学完有种拔剑四顾心茫然的感觉:

无 GC 场景?比如交易之类的,个人项目很难接触到这种东西。

底层?功力不够不知道做什么。

应用?那我有太多其他语言可以选择了。

很尴尬……
maokabc
2023-06-18 13:06:07 +08:00
go 不熟,最近学 rust ,打算拿来代替 c 跟 java 的,先准备用 rust 开发 stm32 试试。
debuggerx
2023-06-18 13:13:27 +08:00
很简单,因为用处不大,"性价比"不够高。
go 虽然不咋地,但是好歹有些明确的适用场景。rust 特性再好,适用面窄就没救。
wyssurvivor
2023-06-18 13:31:43 +08:00
你要跟 go 比,原因很简单,go 就像是天生为中国互联网公司量身定做的,语法简单性能不错。
曾经我也对 rust 很感兴趣,系统学习了一下。但是只能自嗨,周围同事对这种复杂的东西不感兴趣,与其跟编译器较劲,不如把精力放在解决真正的问题上。我也只能自己写点 rust 代码。
二楼说 rust 缺个好爹,事实上 rust 有个烂爹,烂到有人受不了分叉出了 crab
satoru
2023-06-18 13:34:41 +08:00
唉,为什么 Rust 比 Zig 火

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/949560

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX