《架构师》2023年6月
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

卷首语

“用Rust重写”正流行。

一直以来,在Windows内核中的主要语言是C,内核之外的大部分代码是C++。但在最新的Windows 11 Insider Preview版本中,微软纳入了内存安全编程语言Rust,这无疑又添了一把火。还有个人开发者用Rust写了类似Kubernetes的应用。

但同时也有开发者指出,单纯用Rust重写大型C/C++系统组件只会引入额外的攻击面:新组件和现有代码间的外部函数接口(FFI)。在一些情况下,“安全”Rust函数其实比原本的“不安全”C函数更糟糕。

Rust还是C/C++,似乎是个问题:Rust使用相似的语法并且可用于许多与C++相同的任务,但C++拥有更大的社区、更广泛的用例、更多的框架,并且得到了很多公司的认可。而由于其静态类型特性,Rust在安全性、编写速度和防止不正确/不安全的代码方面更好。

近日,在黑客新闻上有关于选择Rust还是C或C++的讨论。

“我会选择Rust,因为它相比C更符合开发者的‘人体工程学’。即使是像标准linter和包管理器(Cargo)这样的小东西,在编写惯用代码方面也大有帮助。”有开发者表示。

“C是永远的选择。它是社区希望尽早制定规范的唯一语言,这使C掌握在程序员手中,而不是编译器创建者手中。”也有开发者说道。

还有“端水”的开发者说道,“把C学得足够好来解决C++和Rust试图解决的痛点,C简单但并不容易;再学习足够多的Rust以提高工作效率;然后学习足够的C++以便与现有的大量C++代码进行交互。”

作为一名开发者,你更支持哪种语言呢?