正如 Linus Torvalds 所承诺的那样 在上一届开源峰会上,信守诺言,没有可能延迟包含的细节,现在将推动 Rust for Linux 包含在 6.1 内核中。
这一变化带来了一个里程碑,即 31 年后,Linux 将接受第二语言 用于内核开发。 鉴于此,考虑到它所呈现的优势,围绕放弃 C 以支持 Rust 语言的可能性再次出现相关辩论。 不过需要澄清一点:目前,Rust 仅获得官方 API 以允许开发单独的模块或驱动程序。
关于放弃 C 语言的可能性问题,C 语言的创造者列举了这方面的举措可能会失败的几个原因:
第一个是 C语言工具链
C语言不仅是语言本身,也是为这种语言开发的所有开发工具。 您想对源代码进行静态分析吗? – 有很多人在研究 C 的这个主题。检测内存泄漏、数据竞争和其他错误的工具? 有很多,即使你的语言更好。
如果您想针对一个不熟悉的平台,您可能正在使用 C。C 作为当今计算的通用语言的地位使其值得为其编写工具,并且编写了许多工具。
如果有人有一个可用的工具链,为什么要冒险更改语言? 一个“更好的 C”应该会产生大量额外的生产力,以激励花费时间建立一个新的工具链。 这是否可能还有待观察。
新语言的不确定性
在一种语言达到成熟之前,它可能会出现错误并进行重大修改以解决语言的语义问题。 语言是否与广告一致? 您可以提供诸如“特殊编译时间”或“比 C 更快”之类的东西,但是当语言添加全套功能时,这些目标很难实现。
维护者呢? 当然,您可以分叉一种开源语言,但我怀疑许多公司是否会对使用他们以后可能被迫保留的语言感兴趣。 押注一门新语言是一个很大的风险。
该语言是否解决了 C 的真正痛点? 事实证明,人们并不总是同意 C 的弱点是什么。内存分配、管理数组和字符串通常很复杂,但是通过正确的库和良好的内存策略,它们可以最小化。 该语言是否解决了高级用户并不真正关心的问题? 如果是这样,其实际价值可能远低于预期。
新语言缺乏经验丰富的开发人员
有人提到,一种新语言自然会拥有更少的经验丰富的开发人员。 对于任何中型或大型公司来说,这都是一个大问题。 公司可用的开发人员越多,情况就越好。
此外,如果公司有招聘 C 开发人员的经验,他们不知道如何为这种新语言招聘。
即将在 6.1 版内核中包含 Rust for Linux 的消息 它发生在 Linus Torvalds 对 Rust 语言的看法发生变化之际。
对 Linux 内核开发的 Rust 支持仍在继续,并且 它被认为是“能够以更安全的语言编写控制器的重要一步”。
Mozilla Research 的 Rust 是那些为基本输入/输出系统 (BIOS)、引导管理器、操作系统等编写代码的编程语言。 有兴趣
在有见识的观察者看来,它是系统编程的未来,而不是 C 语言。事实上,专家说它提供了比 C/C++ 更好的软件安全保证。