一、Rust 基础教程
1.1 Rust 语言简介
Rust 是一门系统级别的编程语言。
Rust 由 Graydon Hoare 开发并在被 Mozilla 实验室收购后发扬光大。
1.2 应用程序及所采用的语言
总所周知,Java 和 C# 语言 一般用于构建面向用户服务的软件。比如电子表格,文字处理器,Web 应用程序或移动应用程序等业务应用程序。
至于面向机器的那些系统级别应用程序,因为对性能和并发由极高的要求,系统、软件以及软件平台所采用的语言几乎都是清一色的 C 语言 和 C++ 语言,比如它们操作系统,游戏引擎,编译器等。这些编程语言需要很大程度的硬件交互。
系统级别和应用程序级别编程语言面临两个主要问题:
- 难以写出高安全的语言,尤其是 C/C++ 指针带来的悬空指针,缓冲区溢出和内存泄漏等问题
- 缺少语言级别的高并发特性。
1.3 为什么选择 Rust ?
为什么选择 Rust ?
估计我们能说出一大堆理由来,然而,对我来说,最大的理由就是 字节跳动公司的飞聊团队已经用上了 Rust 语言了。这意味着学好 Rust 语言就有机会找到高薪的工作。
此外,正如 Rust 语言自己说的那样,Rust 语言有三大愿景:
- 高安全
- 高性能
- 高并发
Rust 语言旨在以简单的方式开发高度可靠和快速的软件。
Rust 语言支持用现代语言特性来写一些系统级别乃至机器级别的程序。
1.3.1 高性能
高性能是所有语言的最高追求,Rust 也不例外。
为了追求极致的性能,Rust 抛弃了 C/C++ 之外的语言都有的 垃圾回收器( Garbage Collector (GC))。
也就是消除了垃圾回收机制带来的性能损耗。
1.3.2 编译时内存安全
Rust 虽然也有指针的概念,但这个概念被大大的弱化,因此它没有 C/C++ 那种悬空指针,缓冲区溢出和内存泄漏等等问题。
1.3.3 天生多线程安全运行程序
Rust 是为多线程高并发而设计的系统级别语言
Rust 的 拥有者(ownership) 概念和 内存安全 规则使得它天生支持高并发,而且是支持没有数据竞争的高并发。
1.3.4 Rust 语言支持 Web Assembly (WASM) 语言
Rust 的目标是成为高并发且高安全的系统级语言,但这并不代表它就不能开发 Web 应用。
Rust 支持通过把代码编译成 Web Assembly (WASM) 语言从而能够在浏览器端以实现快速,可靠的运行。
Web Assembly (WASM) 语言是被设计用来在浏览器端/嵌入式设别上运行的,用于执行 CPU 计算密集型的语言。
也就是说 Web Assembly (WASM) 语言 的目标是和 Javascript 一样能够在浏览器里运行,但因为是编译型,所以更高效。