在2020 年,Rust 将会比 C++ 强在哪里?

虽然有些像是调侃,但Rust相比C++,最大的好处就是“用的人少”,准确说是历史用户少、历史包袱少(因为事实上现在也越来越少有C++的新项目了)。历史包袱少意味着可以轻装上阵,可以站在巨人的肩膀上。

Rust的很多语法,诸如生命周期做进类型系统啥的,带来的优势相比现代C++其实并不算特别突出。语法没有提供支持的,可以通过非常复杂的静态分析工具提供接近的体验,由于语言设计的缘故,没法做到等价,但实际开发起来,勉强还是可以说能接受的。在2020 年,Rust 将会比 C++ 强在哪里?_第1张图片

 

Rust是新语言,站在前人的肩膀上,在语言方面考虑了很多,但是底子薄。底子薄的语言基本不会大规模使用的,轮子都不全肯定不是公司喜欢的类型。在现在编程语言现在这种前几名的语言基本霸占整个市场的情况下新语言能火起来本来就不容易,至少需要时间建立生态,最好还要有个IT巨头或者火爆的开源社区做后盾。现在Rust至少形势还不错,在稳步上升。

Rust 已经是一种成熟的技术,用于生产。作为一种系统编程语言,它允许您保持对低级细节的控制。您可以选择是将数据存储在堆栈上(用于静态内存分配)还是在堆上(用于动态内存分配)。这里有必要提一下RAII(Resource Acquisition Is Initialization),这是一个主要与 C++ 相关的代码习惯用法,但也存在于 Rust 中:每次对象超出范围时,都会调用其析构函数并释放其拥有的资源. 您不必手动执行此操作,并且可以防止资源泄漏错误。在2020 年,Rust 将会比 C++ 强在哪里?_第2张图片

 

这最终允许更有效地使用内存。Tilde 在他们的Skylight产品中使用了 Rust ,特别是重写了某些 Java HTTP 端点。这使他们能够将内存使用量从 5GiB 减少到 50MiB。

由于 Rust 没有持续运行的垃圾收集器,它的项目可以通过外部函数接口被其他编程语言用作库。对于在保持内存安全的同时确保高性能至关重要的现有项目,这是一个理想的场景。在此类项目中,Rust 代码可以替换软件的某些部分,其中性能起着至关重要的作用,而无需重写整个产品。

“Rust 有一个很香的地方:它像 C 和 C++ 那样底层,因此也具有底层的这些优势(比如,控制、大小、速度等)。同时呢,它又像 Haskell 那样高层,自带令人吃惊的大量功能传承。它还是命令式的,所以容易被大多数人上手。然后它又像 Python 一样灵活,比如,' 鸭子类型(duck-typing)' 的概念出现在编译时(比如,特征限定),然后它又没有陈旧的面向对象模型以及由这个模型导致的各种出名的问题。

最后但很重要的是,还有一连串的东西被包含进来:精简短小的语法,语言提供的数目不多的特性,标准库及其一致性,高质量的文档的集成,包括对初学者和高级用户都适用的学习材料,这些都是促成因素。”

你可能感兴趣的:(服务器,linux,音视频)