为什么 C 语言仍然占据统治地位?( 九 )

Go确实包含了用于绕过Go的某些类型处理安全性的unsafe包 , 例如使用Pointer类型读取和写入任意内存 。 但unsafe会附带一个warning说用它编写的程序“可能是不可移植的 , 并且不受Go 1兼容性指南的保护 。 ”

Go非常适合构建命令行实用程序和网络服务等 , 因为这些很少用到太过细致的操作 。 但是 , 如果是低级设备驱动程序 , 内核空间操作系统组件以及其他需要严格控制内存布局和管理的任务 , 那么就最好用C来创建 。

C vs. Rust

在某些方面 , Rust是对C和C ++创建的内存管理难题的回应 , 也是对这两种语言的许多其他缺点的回应 。 Rust编译为本机机器代码 , 因此就性能而言 , 它被认为与C相当 。 但默认情况下 , 内存安全才是Rust的主要卖点 。

Rust的语法和编译规则可帮助开发人员避免常见的内存管理错误 。 如果程序有一个不符合Rust语法的内存管理问题 , 它就不会被编译 。 刚接触这种语言的新手 , 特别是以前用C语言的开发者 , 由于C语言为这类bug提供了充足的容错空间 , 所以他们接触Rust的第一步是学习如何安抚编译器 。 但Rust的支持者认为 , 这种短期的痛苦有一个长期的回报:更安全的 , 不会减缓速度的代码 。

推荐阅读