典中典! C 和 Rust 的 Linux 内核工程师吵起来了, Java 躺枪 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
snipking
V2EX    程序员

典中典! C 和 Rust 的 Linux 内核工程师吵起来了, Java 躺枪

  snipking 2024-08-29 14:57:14 +08:00 8988 次点击
这是一个创建于 459 天前的主题,其中的信息可能已经有所发展或是发生改变。

25 分 29 秒起

v2 的这个 youtube 链接自动转视频的功能不支持加时间戳参数哇
28 条回复    2024-09-02 11:37:22 +08:00
Goooooos
    1
Goooooos  
   2024-08-29 14:58:40 +08:00
Java 已经习惯性被拿来批判
crackidz
    2
crackidz  
   2024-08-29 18:54:00 +08:00
Java 的这些地方做的就是不好嘛,被批判也很正常。起码目前还没有一种完美的语言出现
NessajCN
    3
NessajCN  
   2024-08-29 19:19:20 +08:00 via Android
发言那个 C 工程师是不是以为他每改一次 C 代码 Rust 那边就要重新手搓一遍用了他 abi 的 Rust binding…
Rust 有 bindgen 啊…最多就是像正常调用一样要注意下参数和返回,binding 是不用手搓的。
undeflife
    4
undeflife  
   2024-08-29 20:50:31 +08:00   1
@NessajCN 措辞明显对 rust 有敌意,有些先入为主的误解。
kneo
    5
kneo  
   2024-08-29 23:42:45 +08:00 via Android
程序员还是擅长线上吵架。面对面吵架太吃亏。
diagnostics
    6
diagnostics  
   2024-08-30 01:36:43 +08:00
发言的 C 工程师逻辑和发音都很清晰,演讲者反而口音很重,怎么 Linux 研讨会的不写演讲人信息?这个 Kent 似乎不是人名
levelworm
    7
levelworm  
   2024-08-30 03:54:17 +08:00
可以可以,反正都用 C 就好了嘛。
MrKrabs
    8
MrKrabs  
   2024-08-30 04:14:03 +08:00
如果美丽收税 那么 rust 就是首富
Nitroethane
    9
Nitroethane  
   2024-08-30 09:25:16 +08:00
@diagnostics #6 演讲者是内核 Rust 核心开发者吧,应该是 India 过来的。发言的老哥应该是地道漂亮国人。口音不是啥可吐槽的地方吧,再说这老哥的口音已经很淡了,听起来基本没啥障碍。
dumbass
    10
dumbass  
   2024-08-30 09:37:00 +08:00
评论区已关闭
bczhc
    11
bczhc  
   2024-08-30 09:38:30 +08:00 via Android   2
Kent Overstreet ,bcachefs 里的那个?!
FightPig
    12
FightPig  
   2024-08-30 09:50:33 +08:00
JAVA:为什么受伤的总是我
afeiche
    13
afeiche  
   2024-08-30 09:51:04 +08:00
内核工程师用 java 来做对比感觉有点掉价了,不如集火 C++
Kauruus
    14
Kauruus  
   2024-08-30 10:36:10 +08:00
@NessajCN bindgen 生成的只是 low level binding ,还是 unsafe 的。像 25:29 那些 safe high level API (get_or_create_inode) 还是要手搓。如果 iget_locked 真的改了(虽然我觉得这个 api 基本不会改了),手搓的部分还是要再搓一。然后实现就会不同步。
NessajCN
    15
NessajCN  
   2024-08-30 11:03:40 +08:00
@Kauruus high level 那边本质已经是调用了啊
bczhc
    16
bczhc  
   2024-08-30 11:04:42 +08:00   1
发言者是一个 patch 提交者,旁边站的是 Kent ,写 bcachefs 的那个。我看完了,感觉也不太算是吵架吧,就是下面提问题和质疑,上面回答。只是 25:29 那个确实能听出来对 rust 抱有些敌意。
mogita
    17
mogita  
   2024-08-30 11:10:44 +08:00
Wedson Almeida Filho 已经宣布退出 Rust-for-Linux 开发组了

https://lwn.net/Articles/987635/
Kauruus
    18
Kauruus  
   2024-08-30 12:00:28 +08:00   1
@NessajCN Rust for Linux 做的就是 kernel api 封装 + high level 抽象,说是调用也没问题。

如果 Rust 不进内核倒没这么多问题了,让 Rust 开发者改调用的就是了。

但是 Rust 进到内核之后,C 开发者和 Rust 开发者的合作就会有很多问题。C API 改动导致 Rust 代码编译不过的话,怎么办?放着不管? 让 C 开发者学 Rust ,改 Rust 代码? C 部分的开发、设计会不会受 Rust 的影响和限制?。。。
NessajCN
    19
NessajCN  
   2024-08-30 13:42:47 +08:00   1
@Kauruus 这么说的话确实。Rust 工程师开发内核必然要懂 C, 反过来就不一定了。那么两者都往内核提交的话 C 的地位就变得跟 Rust 平等,也就是 C 工程师同样要会 Rust.
个人觉得这本就是应该的。你一个 C 工程师如果要继续开发内核本就该跟 Rust 工程师一样两者都会,这已经不是技术问题而是个管理问题了。
liaohongxing
    20
liaohongxing  
   2024-08-30 14:44:09 +08:00   3
@NessajCN 你这发言就太扯了,比如 java, 我不反对你用 ,甚至该用就用 。但是你强迫我用,那那我反对 。我要把 RUST 踢出内核,搞清楚谁是主导地位
    21
zemo  
   2024-08-30 15:04:15 +08:00
不是,你们都能看到视频吗?为啥我就一张黑图?
zemo
48y1951r9G8k7Zou
    22
48y1951r9G8k7Zou  
   2024-08-30 15:50:28 +08:00
我支持 rewrite everything in Rust ,也支持 ISO C working group 宣布 deprecate C 然后当场解散(虽然后者大概率不会很快发生)

但是如果说要在一个发展了 30 余年,全球数亿人在使用的庞大项目中引入新的接口和编程范式,并需要所有项目维护者注意配合,那还是要保持怀疑的态度,谨慎对待
levelworm
    23
levelworm  
   2024-09-01 08:45:12 +08:00 via Android   1
我支持 everything in C 来吧大家都写 C 。
flyqie
    24
flyqie  
   2024-09-01 20:35:51 +08:00 via Android
rewrite everything in Rust

这真是个地狱笑话。

linux 的很多场景,c 能很好支持,但是 rust 却很困难。

一直很不理解为什么 rust 要进到内核,这有什么意义? 复杂的语法和复杂的编译器来做安全保障? 简直是个笑话,用 rust 替代 cpp 我持中立态度,rust 替代 c 我只感觉到恶心,rust 本来就不是拿来代替 c 的,这是 linux 内核,这不是上层应用!
levelworm
    25
levelworm  
   2024-09-01 23:40:03 +08:00 via Android
@flyqie 这个大概是政治上的攻城略地。进了内核就意味着什么都可以进了。
junkun
    26
junkun  
   2024-09-02 00:25:49 +08:00
@majula 不是引用新接口的问题,是如果别人用了某个接口,上游的人改之前需不需要跟别人沟通。如果上游自顾自地改了一个接口,然后下游的东西全挂了,上游还觉得无所谓。我觉得挺糟糕的。
何况这个人的态度就像是,如果你依赖我的接口,我就改给你看。
https://vt.social/@lina/113045455229442533 还有别的开发者反馈,因为是 rust 开发者,所以提交 C 语言部分的 patches 就被故意拒绝。
james122333
    27
james122333  
   2024-09-02 02:45:17 +08:00 via Android   1
还是 C 好 Rust 浪费资源太多 编译时间 硬盘消都是 还有一些迷你几百 KB 大小的 C 编译器可以用 编译速度还很快 一般 gcc/llvm 是重量级了 支持比较多 features
flyqie
    28
flyqie  
   2024-09-02 11:37:22 +08:00 via Android
@james122333 #27

是的,主要是 rust 本身就不是对标 c 的。。

linux 内核在历史上也大量依赖 c ,这加 rust 很不合适。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3573 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 25ms UTC 10:34 PVG 18:34 LAX 02:34 JFK 05:34
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86