Microsoft Azure CTO、Sysinternals 的主要开发者 Mark Russinovich 在其社交账号上发布动态称,开发人员是时候停止使用 C/C++ 来启动新项目,并建议可在需要使用 non-GC 语言的场景中使用 Rust。
“说到语言,现在是时候停止用 C/C++ 启动任何新项目了,并在那些需要使用 non-GC 语言的场景中使用 Rust。为了安全性和可靠性,业界应该宣布弃用这些语言。”
此言论一出,不可避免的引起了广泛地讨论。有人问这是他个人的观点,还是作为 CTO 的一个声明。.NET Foundation 成员 Shawn Wildermuth 则在评论区提出疑问,Rust 是否有足够的开发人员来推动工作的进行?对此则有开发者回复称,“想要舍下 C/C++ 确实非常困难,但这并不重要;年轻的开发者可以很快掌握 Rust,相较试图寻找有才华的 C/C++ 开发者,此举要容易得多”。
还有评论表示:
George Ou:我是 Rust 的忠实粉丝,但对于那些认为有安全版本的 C 和 C++ 的人,你怎么说?
Ted Mielczarek:要么他们在骗你,要么他们建议的东西需要有效地重写你的整个代码库,所以你最好使用 Rust。
而在反对的声音当中,一个ID 为 ionCube24 的用户称,Mark Russinovich 的意思更像是在责怪语言而不是程序员。但事实是“C++ 很好,只是很多使用它(和其他语言)的人基本上不知道如何编程;切换语言并不会解决这一问题。”
有人以自身实践举例表明,Rust 存在局限性,并不能解决他所有的问题。然而该网友的论点似乎有点站不住脚:
“它不必解决所有问题才能产生重大影响。”
“为什么要以 ‘解决所有的问题’ 为标准,它是否需要 '解决你所有的问题' 才能在编程中产生实质性的差异?在我看来,想要 '在所有新项目中使用它' 这个标准远比让 '它能解决所有已知问题' 要低得多。”
还有人则颇为“痛心”的感叹 Mark Russinovich 变了,不再“cool”了。也有相对理智的发声称,“或者更好的方式是:不要再过度的去宣传推广一种编程语言。不同的工具适合不同的问题。Rust 很好,但它不是所有编程问题的解决方案”。
更有甚者提出了自己认为更好的 C/C++ 替代方案,“当 GCed 系统语言可以接受时,也不会再有新的 C/C++ 项目。 Go、Nim 和 Crystal 都是比 C/C++ 更好的选择。还有 Zig,它正在做一些很酷的事情,但尚未像 Rust 那样成熟或流行。”
目前,Hacker News 和 Reddit 上也有相关的话题讨论。
Rust 最近确实有着较高的热度:
- Linus Torvalds 透露,没有意外的话 Rust 将在 6.1 版本进入 Linux 内核
- Cloudflare 放弃 Nginx,使用内部 Rust 编写的 Pingora
- GStreamer 准备将 Rust 编写的插件作为其官方二进制版本的一部分发布
- Rust 成立专门的安全团队
- Asahi Linux 计划使用 Rust 编写 Apple 芯片的 GPU 驱动程序
- GCC Rust 得到 GCC 批准,将被纳入主线代码库