据最新消息,近年来Rust编程语言人气飙升,相比之下,C/C++表现稍逊色。Google近期公布了一项把项目由Go或C++代码转换成Rust的试水计划,所得成果令人惊艳——Rust开发者的输出量竟高达C++团队的两倍。
这项发现由谷歌安卓平台工具及库的工程总监Lars Bergstrom在日前召开的Rust Nation英国峰会揭示。尽管此前业内对Rust的安全性和稳定性存在一定争议,特别是其‘unsafe’关键字的存在令人担忧。但现今形势正在改变,部分原因是人们开始认识到非内存安全性所带来的挑战以及各国政府对关键基础设施软件安全性的关注,内存安全问题已被视为国家安全议题之一。
Bergstrom进一步指出,目前美国政府等机构高度重视软件在关键基础设施中的作用,而大型代码库中的大部分安全漏洞都是由内存安全性引发的。对于能够有效防止这些问题的系统如Rust,它正逐渐成为首选。
值得注意的是,微软Azure首席技术官Mark Russinovich早在2022年9月便呼吁新项目尝试使用Rust替换C/C++。如今,这种趋势已经从新项目扩大到了老旧代码的重构。今年初,Microsoft甚至发起了将C#代码转化为Rust的倡议。此外,像网络安全研究团队的Prossimo项目,就是在努力重写NTP、DNS、TLS等关键库的核心开放源码部分,以提高其内存安全性。
然而,并不是所有人都对此持肯定态度。C++创始人Bjarne Stroustrup坚持认为,借助合适的工具,C++同样可以提供像Rust这样的内存安全性,而且成本更低。而美国国家网络总监办公室发布的软件安全报告也引发了相关讨论,其中内存安全性只是软件安全挑战的一部分,不必过份放大。卡内基梅隆大学软件工程研究所强调,任何编程语言都有其优缺点,应根据具体项目需求进行选择。
然而,谷歌等Rust支持者的实际应用却证明Stroustrup的观点存在误区。Bergstrom指出,在将Go代码(内存安全性高但运行速度慢)转为Rust的过程中,谷歌团队在效率上取得了显著提升“尽管迁移过程需要的团队规模和时间与Go开发基本相当,但是内存利用率下降,漏洞率降低,代码质量得以提升”。
更大的惊喜来自于C++代码的迁移效果,“所有案例中,使用Rust构建和维护系统的劳动力减少了超过一倍”Bergstrom介绍道,“这对我们具有极大价值,因为C++代码维护成本极高,需要巨大团队投入大量精力,风险重重”。
此外,谷歌正在实施类似的Java至Kotlin的迁移项目。根据内部匿名调查显示,两种情况下开发人员掌握新语言并达到原有开发效率所需的时间大致相等。约三分之一的开发者表示,他们能用新语言在两个月后最大程度地发挥原有的工作能力;超过一半的开发者表示在四个月后即能适应,效率不低于原来。
全部0条评论
快来发表一下你的评论吧 !