目录

1、Rust语言特点

2、Rust语言优势

3、Rust推广力度

Linux内核

Android系统

微软Windows

其他

4、Rust如何解决内存问题

编译时内存检查器

引用生命周期明确

清晰的编程模式

5、Rust如何做到并发编程

传统模式

Rust模式

编译时发现

6、Rust未来的发力点


1、Rust语言特点

Rust 是一种静态类型的编程语言,专为性能和安全而设计,尤其是安全并发和内存管理。它的语法类似于 C++ 的语法。它是一个最初由 Mozilla Research 开发的开源项目。2021 年,Rust 基金会已接过火炬,正在推动该语言的发展。

2、Rust语言优势

Rust 的创建着眼于确保高性能,可与 C 和 C++ 提供的性能相媲美,同时强调代码的安全性,这是其他两种语言的致命弱点。它的效果非常好,以至于 Rust 编程语言现在被包括 Firefox、Dropbox 和 Cloudflare 在内的知名软件巨头所使用,而且从初创公司到大公司,许多公司都在生产中使用这种技术。

Rust 解决了 C/C++ 开发人员长期以来一直在努力解决的问题:内存错误和并发编程。这被视为其主要好处。

3、Rust推广力度

根据Stack Overflow 开发人员调查 2020,Rust 是最受欢迎的编程语言,连续第五年获得冠军。

Linux内核

在 2020 年,Linux 内核开发人员提议用 Rust 编写新的 Linux 内核代码。需要明确的是,他们不想重写最初用 C 编写的整个内核,而是想在 Rust 中添加可与现有基础架构一起使用的新代码。不亚于开源操作系统 Linux 之父 Linus Thorvalds 的人物对这个想法表示欢迎,并渴望看到该项目的结果。

Android系统

谷歌还计划在将系统编程语言 Rust 支持到 Android 之后,在 Linux 内核中使用 Rust。整个操作旨在减少安全漏洞。

微软Windows

微软已经转向 Rust 以减少 Windows 组件中与内存相关的错误。

其他

Facebook 还与 Rust 建立了更密切的联系,加入了 Rust 基金会,该组织成立于 2021 年,旨在推动 Rust 的发展,使其成为“系统编程及其他领域的主流语言选择”。Facebook 与亚马逊网络服务、谷歌、华为、微软和 Mozilla 一起在某些方面使用 Rust。

4、Rust如何解决内存问题

编译时内存检查器

在 Rust 中,你有借用检查器——编译器的一部分,确保引用不会超过它们所引用的数据。此功能可帮助您消除内存违规错误。此类问题是在编译时检测到的,不需要垃圾回收。 

引用生命周期明确

在 Rust 中,每个引用都有一个生命周期,你可以在其中设置该引用有效的范围。这个特性解决了引用不再有效的问题,也将 Rust 与 C 和 C++ 区分开来。 

清晰的编程模式

在 Rust 中有两种编写代码的模式:安全 Rust 和不安全 Rust。

安全的Rust, 对程序员施加了额外的限制(例如对象所有权管理),从而确保代码正常工作。

不安全的 Rust ,给了程序员更多的自主权(例如,它可以操作原始的类似 C 的指针),但代码可能会崩溃。 

Rust 的双模式模型是其最大的优势之一。另一方面,在 C++ 中,您永远不会知道您编写了不安全的代码,直到您的软件崩溃或安全​​漏洞出现。

5、Rust如何做到并发编程

Rust 通过在编译时防止数据竞争使编写并发程序变得更容易。

传统模式

当来自不同线程的至少两条不同的指令试图同时访问同一内存位置时,就会发生数据竞争。

而其中至少有一条正在尝试写入内容,并且没有同步可以在各种访问之间设置任何特定顺序。未定义对没有同步的内存的访问。

Rust模式

在 Rust 中,检测到数据竞争。如果给定的对象访问不支持多线程,则需要通过互斥锁进行同步,该互斥锁将为其他线程锁定对该特定对象的访问。

为了确保对对象执行的操作不会破坏它,只有一个线程可以访问它。 

从其他线程的角度来看,对该对象的操作是原子的,这意味着观察到的对象状态始终是正确的,你无法观察到其他线程对该对象执行的操作产生的任何中间状态。

Rust 可以检查我们是否对这些对象执行了任何不正确的操作,并在编译时通知我们。

而其他语言采用同步方法,但它们与它们所引用的对象无关。

在使用对象之前需要注意锁定对象的是开发人员。例如,在 C 中,编译器允许开发人员编写有缺陷的代码。结果,当程序已经在生产中运行时,才会检测到相应的错误。 

编译时发现

在 Rust lang 中,许多与并发编程相关的问题(不是全部)都得到了解决,因为它们在编译时立即被发现。

6、Rust未来的发力点

根据Rust语言的特色:高性能的同时确保内存安全、支持并发编程,另外社区也在加速推动语言的发展,更重要的一点是rust确保向后兼容性和稳定性,Rust 是为未来 40 年设计的。当然Rust语言的学习门槛也比较高!

所以,未来的Rust语言的主要发力点在偏计算密集型方向,比如人工智能领域、高性能服务器、嵌入式等。