有人使用 Rust 重构过旧项目吗?

65 天前
 red13

原来的一个数据分析引擎,使用 C 开发的,C 开发效率太低了,debug 程序更是让人头大,打算使用 Rust 重构一下,学习了三四天,感觉 Rust 绝不是像 Python 那样看一上午就能开始项目然后边学边做的语言。 有没有用 Rust 重构过旧项目的朋友,来说说呗

4703 次点击
所在节点    Rust
49 条回复
istomyang
65 天前
rust 其实培养的是一种优秀的编程习惯,最好先写 rust ,再写 c ,你先自由,后约束,当然处处碰壁。一旦掌握了所有权的精髓,你写其他语言,自然而然使用所有权的思维方式,写出的代码更健壮。
epiloguess
65 天前
我们用 rust+pyo3 重构了原来 python+go 的项目,主要是视频流的处理,没怎么用异步 io ,确实比原来的那一套要稳定得多。边学边写应该是不可能的,我们基本上都是提前半年通知,每个人至少看完了 trpl ,以及常用的库,还要一边写一边查
gullitintanni
65 天前
@istomyang #21 不认同。如果你经常用 C 做生产级别的项目的话,你会发现,合格的开发者在用 C 编程的时候,所有权是时刻牢记于心的,并非无拘无束地自由发挥。

Rust 这个奇葩玩意对所有权做了蹩脚的抽象,把它显式地提到了语法层面,虽然避免了开发者因为不称职或者粗心大意所带来的内存安全问题,但同时也降低了代码的可读性和可维护性。

或许在 security-critical 的领域(比如航空航天、军事等领域)这种妥协是必要的,但它在常规场景并不一定合适。
就好比你在自家客厅走路,戴头盔、穿全身护具,提升安全性的价值远远无法弥补其带来的不便。
yuandong
65 天前
开发效率低效,已放弃
w568w
65 天前
尝试过,很爽。但这里是 V 站,所以我要说

Rust 是一坨屎,意义不明的垃圾发明,你只要碰了这语言就是魔怔人、教徒,并且对上面所有认为 Rust 好进行出警
w568w
65 天前
@w568w 漏了几个字,应为

Rust 是一坨屎,意义不明的垃圾发明,只要碰了这语言就是「魔怔人」「教徒」。上面所有认为 Rust 好写的用户都应该被出警
lasuar
65 天前
我曾花了 2 个月时间学 rs ,现在过去 2 年,也没能在项目中用上。我不想评价 rs 的上手难度,因为总有人说是我水平不够,但我相信会有一个比肩 rs 性能但上手难度接近 go 的语言出现。
sxhxliang
65 天前
我写 rust 四年了,只要你学会了,效率并不低,这是我的例子 https://ex.noerr.eu.org/t/1144449#reply17 , 顺便说一下 tmux 也用 rust 重写了,https://github.com/richardscollin/tmux-rs
codefun666
65 天前
Rust 的丑陋难以接受,如果需要内存安全,可以用 Go ,性能差一点但问题不大。

重写的意义在哪里? 能创造什么“价值”?
CatCode
65 天前
没有
也不打算
是 Rust 用户
ajaxgoldfish0
65 天前
说实话喊了这么久的 rust 并没有觉得好在哪里,我身边没见过会 rust 的。
midstream
65 天前
如果空闲时间多,可以搞,完成了之后很有成就感和满足感。
如果纯为了解决问题,可以但没必要
DeWjjj
65 天前
写过几个以前 java 写的日志微服务,速度快了一点,重构之后很稳定。
但是,收益不大,性能上收益很小。
roundgis
65 天前
@gullitintanni 航空航天不是还有 ada 么
zagfai
64 天前
都差不多 我什么都写 py c rust c# swift kotlin java 。。。。用着写得最快的还是 py 。。。
cnbatch
64 天前
@sxhxliang 准确来说,是有个爱好者尝试使用 Rust 重写 tmux
ReadMe 内的两句话即可看出来:
“This project is alpha quality and has many known bugs”
“This a fun hobby project for me.”

原版 tmux 依然与 Rust 无关:
https://github.com/tmux/tmux
buf1024
64 天前
有,python 重构为 rust ,总规模如下:
find . -name '*.rs' -print | grep -Ev 'target|frontend' | xargs wc -l

24280 total

不要被上面负面情绪所影响,这些可能没几个真正写过 rust 代码,rust 就是上手难而已。但是等你熟悉它的编码思维,写过几个上规模的代码,编码效率也很快。

不过 rust 编译很慢,需要你准备性能高点的电脑。
wupher
64 天前
数据分析感觉用 python 可能更合适?

有 python 工具项目转 Rust ,图片处理类。确实不那么容易,当然效果也很显著。

AI 时代了,其实当前应该比你想像的要简单多了。
bluearc
64 天前
rust 开发效率高更多体现在多模块大项目上吧,相比其他语言写出来更可控也好审阅;而且 rust 入门也是很需要时间的。既然原项目是 C ,那我觉得用 cpp 重构更合适
yannxia
64 天前
业务性质上的代码反而不难,我用 rust 在重构一个 API Proxy ,难度就变大了,很多抽象不太好写,因为所有权 + 泛型 变成了两座大山

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

https://ex.noerr.eu.org/t/1144592

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

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

© 2021 V2EX