感觉 RUST 上手难度有点高开发速度有点慢,

2022-07-07 11:28:34 +08:00
 newghost
个人比较喜欢 RUST 的无 GC 设计,

感觉主体思想是让变量出了当前函数(域)就自动回收,但这样也引出了一大堆变量所有权及标注,生命周期,借用 /引用等概念和独特用法,应该是 RUST 里独一份了

导致在其它语言很简单的功能在 RUST 就要多写很多代码,理解一大堆概念,感觉开发效率慢很多,不知道大家有没有这个感觉?
10152 次点击
所在节点    Rust
49 条回复
yazoox
2022-07-07 11:39:12 +08:00
完全不懂 rust
顺便过来看看,大家有没有啥书籍或者视频等等推荐,俺好入个门......
NoNewWorld
2022-07-07 12:13:36 +08:00
正常,毕竟哪有完美的。
sunny352787
2022-07-07 12:16:53 +08:00
没错,上手很难,所以当年我从 Rust 和 Go 中选择了 Go ,不然带人太累了
march1993
2022-07-07 12:19:34 +08:00
用完就回收=完美程序实现吗?
先等等 积攒一堆了一起回收=不可靠吗?
ke1e
2022-07-07 12:29:07 +08:00
个人感觉现在 rust 的太多设计都是为了妥协编译器;不过好在没有比 rust 编译器提示更友好的了
hbdh5
2022-07-07 12:41:43 +08:00
RAII, ownership, lifetime 这些都不是 rust 首先提出或实现的。rust 只是把这些许多概念集成到一起的语言里最成功的。
qrobot
2022-07-07 12:45:46 +08:00
@march1993 用完回收,就是最完美的, 如果先等等,积攒一堆, 那么这个时候 gc 就消耗非常严重了, 可以说成本很高很高
rming
2022-07-07 13:03:58 +08:00
@ke1e rust 编译器确实厉害,一个教你写代码的编译器
IvanLi127
2022-07-07 13:46:17 +08:00
喜欢它就是要包容它的其他缺点啦

感觉开发效率还好,我是 C++ 学哭了来 Rust 这,感觉很舒服,至少编译器报错我是能看得懂了
duke807
2022-07-07 14:02:10 +08:00
除了極少數高手,大多數追 rust 的都是因為對底層硬件不了解,而被 內存、指針、堆、棧 等等虐慘,特別是遇到 bug 的時候,好不容易來一個 rust 可以 pk c/c++,那還不趕緊抓住救命稻草,慢一點就慢一點,麻煩就麻煩一點好了

所以大多數追 rust 的人本職工作都是用不上 rust 的,非要用 rust 来做上層的事只是出於焦慮,而不是真實的需求,長久不了

綜上,rust 的流行注定是過眼雲煙

真正想拓展自己向下觸角的人,應該學學 linux kernel 、mcu 之類的,當然,大多數搞上層的人並不適合,不用勉強自己
ihciah
2022-07-07 14:56:39 +08:00
写熟了感觉比其他语言写的快(泛型真的是个好文明)。
lovepplforever
2022-07-07 14:58:54 +08:00
还是 go 香
libook
2022-07-07 16:06:02 +08:00
Rust 的预期是增加前期开发成本、降低 Debug 成本、提升产品质量。

如果原本就在做 C/C++项目,而苦于投入大量产能在解决或避免内存安全问题上,Rust 就可以用来提升整体开发效率。

越是隐藏底层实现的方案开发效率越高,比如有 GC 语言通常比比无 GC 语言开发效率更高,弱类型语言通常比强类型语言开发效率更高。但是为了提升性能、产品质量、可维护性等都也是会产生成本的,所以需要针对项目考虑使用哪种技术在满足需求的基础上综合成本最低。

学 Rust 可以直接去官网看官方 book ,我是直接看的英文原版,如果英文不好也可以考虑对应的中文翻译版。
另外 Rust 细节特性和语法糖很多,如果不经常用很可能会忘,最终会发现自己隔一段时间就要重新学一遍 Rsut 。
mxT52CRuqR6o5
2022-07-07 16:10:19 +08:00
你确实需要无 gc 特性时才应该去使用这种无 gc 语言(比如写底层的东西、有实时性要求的东西),否则用无 gc 语言太自找麻烦了
march1993
2022-07-07 16:42:54 +08:00
@qrobot 不存在的。即便是 libc ,free 完的资源也不是立刻交还给操作系统的。
DeWjjj
2022-07-07 16:48:17 +08:00
@march1993 不可靠,积攒在一起回收会产生悬垂,还有各种隐性转换也会导致非运行时错误。
而且我现在写 c 也是按着 rust 思路写,bug 真的少了…
DeWjjj
2022-07-07 16:51:20 +08:00
可能犯错意味着可能报错,无论你是多么细致一个人。但是,明文限制不能报错,出现错误概率就会低到极低。
BeautifulSoap
2022-07-07 17:02:26 +08:00
rust 都确定要进入 linux 内核了,还有人说过眼烟云。。。。
irytu
2022-07-07 17:31:35 +08:00
@duke807 过眼云烟有点言重了哈
duke807
2022-07-07 17:49:55 +08:00

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

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

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

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

© 2021 V2EX