多年来,我一直在参与Rust和Rust社区。我的大部分工作都与创建用于在Rust中构建GUI工具包的基础设施有关。然而,我发现我对这种语言越来越失望,我现在太渴望C++的稳定与成熟了!
1、构建系统:Rust生态小家子气Rust生态系统的局限性之一是Cargo构建系统和包管理器的近乎单一文化。虽然在某种程度上使用了其他构建系统(包括集成到更大的多语言项目时的Bazel),但它们并没有得到工具的很好支持。
相比之下,在C++中,构建系统有很多选择,允许每个开发人员选择最适合他们需要的一个。一个非常常见的选择是CMake(CMake是一个开源、跨平台的工具系列,旨在构建、测试和打包软件,通常用于使用简单的平台和编译器独立的配置文件控制软件编译过程),但也有Meson、Blaze及其变体,当然也总是可以求助于Autotools并进行制作。如果我们要编译AIX和DECOSF/1AXP等Unix系统,后者尤其有用。如果这些都不够,还有很多其他选择,包括SCons,毫无疑问,我们会定期创建新的选择。
我们还没有为Linebender项目确定构建系统,但很可能是CMake,并计划评估其他系统和迁移,也许是Meson。
Linebender:包含许多诸如druid、xilem等许多流行的Rust存储库。
2、安全:三个原因放弃Rust这一变化最具争议的方面可能是放弃了Rust语言的安全保证。但是,出于三个原因,我认为这在实践中不会成为大问题。
首先,我认为自己是一个足够优秀的程序员,我可以避免编写有安全问题的代码。当然,我曾负责过一些CVE(包括Android中的字体解析代码),但我从那次经历中吸取了教训,并且有信心在未来避免此类错误。
其次,我认为内存安全问题的危险被夸大了。Linebender项目主要