Rust 替代 C? 除非 Rust 写进指令集。

204 天前
 TOM2333
4344 次点击
所在节点    Linux
25 条回复
InkStone
204 天前
不是,难道有哪家指令集里还有 C 的?

大家不都要么编译到后端,要么内嵌 asm ,要么是调编译器 intrinsic ,这里有哪个 Rust 不能啊?

Rust 不能取代 C 的原因有很多,但跟机器指令的兼容性肯定不是其中一个……
codehz
204 天前
@InkStone 但某种意义上由于 rust 依赖 llvm ,然后 llvm 还没支持 gcc 支持的某些架构导致这个可能还真有点关系,毕竟 linux 可能还要在这些设备上运行,不能改了之后就直接放弃这些架构了
虽然 GCC 版本的 rust 也在推进,但和生产可用还是两个状态
Morxi
204 天前
主要是厂商写驱动和 sdk 的没几个会 rust ,
甚至 C 都是当汇编用
InkStone
204 天前
@codehz 你说的这个我也认同,不过我认为它跟答主说的不是一回事。

C 作为最简化的汇编封装,一个新架构、新指令集、新环境上线,必定最支持 C ,这个事情在可预期未来内不太可能改变。
zzz22333
204 天前
@Morxi #3 C 都是当汇编用 , 是啥意思
namonai
204 天前
@codehz rust 有 gcc 的 backend
minami
204 天前
有一部分人按气质来分类,应该是属于 replacer ,整天咋咋呼呼的就是:rust 要替代 C 了!星链要替代 5G 了!鸿蒙要替代安卓了!评价为:建议宁爸妈再生个弟弟把你替代了吧
elltor
204 天前
@zzz22333 「 C 都是当作汇编用」含义是 C 语言(编译后)操作硬件,很多平台提供的 API 都是 C 实现的。
zzz22333
204 天前
@elltor #8 这不是常规操作吗,汇编在 OS 中一般只有启动部分或者中断部分用得多。
TOM2333
204 天前
@InkStone #1 只是表达 Rust 不可能替代 C 。
crayygy
204 天前
“添加 Rust 支持” 和 “Rust 替代 C” 不是一件事情啊
sir283
204 天前
@minami 真实,本来对 rust 不怎么感冒,但是看到类似 op 这种的一直高强度在论坛刷屏,就莫名的反感 rust 了,算是一种负面影响吧。
jeesk
204 天前
除了内存安全,还有其他好处吗。关键是体积并不比 c 小呢。

要是 chromium 全用 rust 替代 cpp , 一个完整得编译恐怕得 1 周。
Ocean810975
204 天前
@sir283 #12 OP 这种的不是反对 RUST 的吗?
PTLin
204 天前
关键点就错了,问题说到底还是软件工程和政治问题,是一个超大型项目怎么引入第二语言或者一个重大变更并且协调开发者的问题,就更不用说 Linux 这种非中心化分布式开发的大型项目了。
除非一个大功能你能一个人搞定开发,调试,后续 breaking change 追踪更改。不然一但一堆人协调起来,一个人不接受就能让你一直卡在那。
Hsinyao
204 天前
我内核,dpdk ,spdk ,虚拟化都做过,我写 C 的时候脑子里能自动转换出汇编,你们说的这个 Rust 可以吗
Donaldo
204 天前
大哥,下次发帖子之前先百度一下指令集是啥。。
Donaldo
204 天前
@Hsinyao #15 你写 c 可以有这种映射,那你写 rust 也可以,这是脑子问题不是语言的问题。换句话说,你完全可以把 rust 写的跟 c 一样,但意义在哪?
w568w
204 天前
别钓鱼了,已 block 。
InkStone
204 天前
@Hsinyao Rust 人脑汇编的难度介于 C 和 C++之间吧,不涉及过程宏的情况下,多看看生成的 asm 差不多就有数了。大多数内建的抽象(比如迭代器、trait object 、模式匹配等)在编译后都会变成固定模式的简单汇编——本来零成本抽象的目的就是这样——脑补难度并不高。

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

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

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

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

© 2021 V2EX