V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
TOM2333
V2EX  ›  Linux

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

  •  
  •   TOM2333 · 9 天前 · 3429 次点击
    25 条回复    2025-02-14 16:14:19 +08:00
    InkStone
        1
    InkStone  
       9 天前   ❤️ 5
    不是,难道有哪家指令集里还有 C 的?

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

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

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

    要是 chromium 全用 rust 替代 cpp , 一个完整得编译恐怕得 1 周。
    Ocean810975
        14
    Ocean810975  
       8 天前
    @sir283 #12 OP 这种的不是反对 RUST 的吗?
    PTLin
        15
    PTLin  
       8 天前
    关键点就错了,问题说到底还是软件工程和政治问题,是一个超大型项目怎么引入第二语言或者一个重大变更并且协调开发者的问题,就更不用说 Linux 这种非中心化分布式开发的大型项目了。
    除非一个大功能你能一个人搞定开发,调试,后续 breaking change 追踪更改。不然一但一堆人协调起来,一个人不接受就能让你一直卡在那。
    Hsinyao
        16
    Hsinyao  
       8 天前 via iPhone
    我内核,dpdk ,spdk ,虚拟化都做过,我写 C 的时候脑子里能自动转换出汇编,你们说的这个 Rust 可以吗
    Donaldo
        17
    Donaldo  
       8 天前
    大哥,下次发帖子之前先百度一下指令集是啥。。
    Donaldo
        18
    Donaldo  
       8 天前
    @Hsinyao #15 你写 c 可以有这种映射,那你写 rust 也可以,这是脑子问题不是语言的问题。换句话说,你完全可以把 rust 写的跟 c 一样,但意义在哪?
    w568w
        19
    w568w  
       8 天前
    别钓鱼了,已 block 。
    InkStone
        20
    InkStone  
       8 天前
    @Hsinyao Rust 人脑汇编的难度介于 C 和 C++之间吧,不涉及过程宏的情况下,多看看生成的 asm 差不多就有数了。大多数内建的抽象(比如迭代器、trait object 、模式匹配等)在编译后都会变成固定模式的简单汇编——本来零成本抽象的目的就是这样——脑补难度并不高。
    yangliudi123
        21
    yangliudi123  
       8 天前 via iPhone
    取代不如迭代更新 C ,重复造轮子有啥意思
    yangliudi123
        22
    yangliudi123  
       8 天前 via iPhone
    指针是 c 的强项,没这个玩意儿就不够灵活了,用 c 的不在乎内存安全
    yb2313
        23
    yb2313  
       8 天前
    rust 不是一直在跟 cpp 竞争生态位吗,跟 c 有什么关系
    ccpp132
        24
    ccpp132  
       8 天前
    @yb2313 最近在争 linux 的活才引发的讨论吧
    yb2313
        25
    yb2313  
       8 天前
    @ccpp132 linux 中 rust 还能竞争,cpp 却不能上桌,赢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2589 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:37 · PVG 18:37 · LAX 02:37 · JFK 05:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.