Find me on GitHub
https://github.com/josehu07
CV | LinkedIn | Google Scholar
guanzhou.hu (at) wisc.edu | |
josehu (at) cs.wisc.edu |
To all my loved ones and my friends ♥
GitHub Pages — Theme by orderedlist
03 Sep 2019 - Guanzhou Hu
Rust 作为一门新兴的 system programming 语言,其设计参考了各 system programming 语言的优劣势,以安全、同时快速为目标,开创了 compile-time 实现几乎一切安全检查的新颖的编程语言模式。可以说,Rust 承载了作者 Graydon Hoare 和新互联网时代逐渐关注起安全的众多开发者们的理想,也吸引了如 M 校前沿系统研究者们的关注(参考 PDOS 博士生 Jon Gjengset)。
Rust 语言在 system programming 领域之所以显得特别与众不同,最重要的一点就是整个 Memory Management 环节的设计:基于 Ownership + Borrowing + Lifetime 的 compile-time 内存管理。之所以说其与众不同,是因为这与其他任何传统 system programming 语言内存管理的机制选择完全不同:
而 Rust 也是在 MM 这一方面才体现出其最重要的设计理念:安全,同时快速。即能在编译时检查出几乎所有安全问题,保证得到的代码 run-time error 尽可能少(所以才有 Rust program 只要通过了编译就基本是语义正确的笑言),同时又没有 GC 等等的运行时 overhead,对于编写 system-level 的项目来说是一种重大的进步。当然,这种选择也带来一些弊端,下文也会提及。
个人认为 Rust 有如下 5 条优点,是作为最新的 system programming 语言,参考已有语言的缺陷和自己的哲学,综合而来的:
Option
& Result
的空值和错误处理,保证了代码清晰的情况下,对空值和错误全面而安全地处理,也是 Rust 减少 run-time error 的重要保障之一可以说,Rust 是一个好学生,学习到已有 system language 的各种不足,如 C/C++ 虽自由却让人头疼的 segfaults,Java 饱受诟病的 VM 和运行时 GC 的低效等,从而创造出一种新的语言设计哲学,走出一条与众不同的个性化的路线。正因如此,Rust 虽然不简单、领域相对小众,也能长居 Stackoverflow 最受喜爱的语言调查的榜首1。
同样的,好学生往往有自己的偏执的一面,不会是完美的,也有许多的缺陷。
unsafe
/ 暂时还无法有效实现,有时会令人感到束手束脚Please comment below anything you wanna say! 😉