#Rust是Better C++的吗?
Rust刚发布时,很多人拿它和C++比较。但 Rust 并不是 Better C++,而应该是“新时代的 C 语言”。
70年代,C、ML等奠定了编程语言范式。
80年代,C++带着 C with Class 的标签诞生。
90年代,号称纯函数式编程语言的Haskell诞生。
20世纪末,系统软件通常使用C构建。
21世纪初,意识到安全的重要性,2006年Graydon受CyClone启发,创立 Rust 语言。
CyClone 的安全模型和 Rust 核心思想非常吻合:
1. 代数数据类型。Rust 也支持,且引入了函数式编程特性。
2. 泛型。Rust 也支持。
3. 存在类型。Rust 也有。
4. 基于Region的内存管理。Rust 所有权基础,类似于C++11引入的智能指针,借用检查最初也是基于词法作用域,后改进为基于MIR的更细粒度的生命周期。
5. 线性/仿射类型(Rust 所有权基础)。
6. 更安全的指针,CyClone 分多种指针类型,如空指针/胖指针/内存安全的指针等。而Rust只区分了“引用/借用”/“智能指针”/“裸指针”三种,巧妙地把借用检查融合为了一体。
7. 无缝兼容C。Rust 则通过划分Unsafe边界来无缝对接 C-ABI。
Rust其实更像是对 C 语言的一种重新实现,是为了满足新时代安全和性能并重的需求。
#编程语言 #C #Graydon #CyClone #内存安全 #并发安全 #高性能
Rust刚发布时,很多人拿它和C++比较。但 Rust 并不是 Better C++,而应该是“新时代的 C 语言”。
70年代,C、ML等奠定了编程语言范式。
80年代,C++带着 C with Class 的标签诞生。
90年代,号称纯函数式编程语言的Haskell诞生。
20世纪末,系统软件通常使用C构建。
21世纪初,意识到安全的重要性,2006年Graydon受CyClone启发,创立 Rust 语言。
CyClone 的安全模型和 Rust 核心思想非常吻合:
1. 代数数据类型。Rust 也支持,且引入了函数式编程特性。
2. 泛型。Rust 也支持。
3. 存在类型。Rust 也有。
4. 基于Region的内存管理。Rust 所有权基础,类似于C++11引入的智能指针,借用检查最初也是基于词法作用域,后改进为基于MIR的更细粒度的生命周期。
5. 线性/仿射类型(Rust 所有权基础)。
6. 更安全的指针,CyClone 分多种指针类型,如空指针/胖指针/内存安全的指针等。而Rust只区分了“引用/借用”/“智能指针”/“裸指针”三种,巧妙地把借用检查融合为了一体。
7. 无缝兼容C。Rust 则通过划分Unsafe边界来无缝对接 C-ABI。
Rust其实更像是对 C 语言的一种重新实现,是为了满足新时代安全和性能并重的需求。
#编程语言 #C #Graydon #CyClone #内存安全 #并发安全 #高性能
展开
评论
1