当 Rust 成为“巨坑”

2023-01-07 14:23:08 +08:00
 gowl

「我其实挺喜欢 Rust ,也绝无抹黑 Rust 的意思。但亲身经历告诉我,选择 Rust 几乎必然会对生产力造成重大影响,影响到快速行动这个基本目标。所以动手之前,请大家认真权衡 Rust 造成的速度影响到底能不能抵得上它给业务和产品带来的收益。」

当 Rust 成为“巨坑”:拖慢开发速度、员工被折磨数月信心全无,无奈还得硬着头皮继续 https://www.infoq.cn/article/zyaaafbdy5zay8w5iamf

5442 次点击
所在节点    分享发现
17 条回复
Jirajine
2023-01-07 14:29:47 +08:00
说的没错,rust 被设计来编写高质量的程序代码,但这是有代价的。
而在绝大多数商业场景中,程序代码的质量都不是最重要的,堆屎山用 go 这类语言痛苦会少很多。
wu67
2023-01-07 14:43:06 +08:00
本质上, 堆💩山能跑就行 - 代码质量 是天平两端, 商业项目都是在这两者之间取平衡点.
其中脚本类、弱语言是偏向💩山最多的, 点名 js. 但是也伴随一个问题, 商业 idea 真的成了、赚钱了, 就得考虑优化代码质量, 往天平另一端挪, 不然代码会变得没法维护, 以为这商业 idea 失去了灵活性, 就只能等着被同行挤兑死了, 或者等着代码漏洞被人打烂
cmdOptionKana
2023-01-07 15:02:42 +08:00
rust 的优缺点很明显,而且每种主流语言都必然有优点才能流行,也必然有缺点才不能一统江湖,选的时候就应该知道优缺点才对。
sakura6264
2023-01-07 15:05:00 +08:00
通常当你觉得你可能需要用 C++时候才可能用到 rust
des
2023-01-07 15:14:57 +08:00
标题党,原标题根本不是这个意思
Kirscheis
2023-01-07 16:16:23 +08:00
深有体会,rust 强迫人们写可靠的代码,但是实际上大多数时候可靠性根本不重要,出问题重启就好了,算错数也会被后续的统计检验筛掉,即使是嵌入式领域,多数难解决的问题加个 watchdog 也都能凑合跑下去,就算产品在用户手里真的崩溃或者坏了,只要概率低一点也不是多大个事(就连特斯拉的车机这种东西死机了似乎也没有赔钱,要知道仪表盘可都在上面)。只有在很少,极少的领域,比如医疗,动力或航空才需要真正的高可靠性。

何况很多人写代码是半路出家,不了解计算机的结构,对硬件理解很差,经验也不多,完全就是硬着头皮一股脑写下去,遇到问题就靠谷歌那种。让他们去搞 rust ,根本就不可能搞定,最后当然是很挫败。想要找可靠的专家合作的话,一是人数不多,很可能根本找不到,二是价码很高,找到人也不一定能谈拢。

两个因素合起来,那就是用 rust 收获不大,对于我们来说完全可以用 c ,cpp 代替,但是成本究极倍增。

曾经尝试过用 rust 做固件,得到的结论是,这东西也许 5 年后会很好,到时候足够内卷,也许多数写程序的人就能理解内存是怎么一回事了。但现在就用,你的队友只会让你血压疯狂升高。
8355
2023-01-07 16:34:25 +08:00
前几天喷 golang 说 rust 好 今天又说 rust 是巨坑
果然 php 才是最好的语言啊
xieren58
2023-01-07 17:07:37 +08:00
rust + rtic, 用在 stm32 上, 爽得飞起...
agagega
2023-01-07 17:37:57 +08:00
复杂性是不会消失的,它只会从一个地方转移到另一个地方。不同的语言适合管理不同地方的复杂度。前端娱乐圈的某些人听到 Rust 这个名字就起兴了,一副在此之前从来没听说过原生语言的模样,简直是胡闹。

Rust 是好,但它并不适合所有场景。我倒希望能有一个带 GC 、抽象层次高的原生语言,OCaml 比较接近,就是阳春白雪了些,C#也不错。不需要 GC 的场景,如果 C++真的能有实用性的生命周期和包管理解决方案(怎么会有人说 CMake 这种东西 modern 啊),我甚至还挺乐意用 C++
SolarAA
2023-01-07 19:36:10 +08:00
@agagega OCaml 5 有了多线程真希望能够和 Go 拼一拼,可惜生态不好。
kaneg
2023-01-07 19:53:17 +08:00
鱼与熊掌不可兼得,不能既要 rust 的安全严谨,还要敏捷快速。
或许很多初创公司的代码还没累积到屎山就死了,所以用 js 可能跟合适。
但一旦跨过生死考验,准备长期发展时,就开始为当时的选择付出代价:欠下的迟早要还的。
duke807
2023-01-07 20:02:52 +08:00
linus 都说了,同意 linux 支持 rust 是为了惩罚开发人员,很多人还真以为 rust 是未来了
littlewing
2023-01-07 21:27:36 +08:00
@duke807 真要惩罚开发人员应该用 C++
acctv2
2023-01-07 21:34:41 +08:00
@agagega 其实 C++本体不太恶心,尤其如果项目主体用的 C++11 以上标准。
C++的编译和工具链太恶心了,太恶心了,太恶心了。
jiang42
2023-01-08 02:44:35 +08:00
有這時間去重新用 Rust 發明輪子,不如好好在 C++上搞搞形式化驗證-。-
zjsxwc
2023-01-08 10:37:35 +08:00
https://scribe.rip/using-rust-at-a-startup-a-cautionary-tale-42ab823d9454

原文不是楼主说的意思吧。
rekulas
2023-01-08 11:29:54 +08:00
20 21 年很多推 rust 的文章,鼓吹初创公司用 rust 我就感觉这有点不合适
初创公司需要快速实现产品,而大部分的初创公司的产品都难以遇到真正的性能瓶颈(至少前几年是这样),而相比其他语言 rust 的学习曲线和开发效率也是有目共睹,所以实在不建议首选 rust
后悔选择 rust 的公司我都看了不少了,这可能只是个开头。。

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

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

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

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

© 2021 V2EX