
If it compiles, then it works
背景
Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。正式宣告诞生是在2015年发布1.0版本,1.0的发布是Rust发展的一个动力。
此后,Rust遵循每三年一大版本的发布
2015年:稳定性
2018年:生产力
2021年:?
Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。Rust的设计者们通过在研发Servo网站浏览器布局引擎过程中积累的经验优化了Rust语言和Rust编译器。Rust编译器是在MIT License 和Apache
License 2.0双重协议声明下的免费开源软件。Rust已经连续四年(2016,2017,2018,2019)在Stack Overflow开发者调查的“最受喜爱编程语言”评选项目中折取桂冠。
随着近年来Rust及社区的稳步发展,加上近期AWS、微软、Linux等都在拥抱Rust,Rust在系统级编程领域还是很有前景的。
简介
Rust的Logo

Rust社区吉祥物Ferris

特性
零成本抽象
移动语义
保证内存安全
没有数据竞争的线程
基于trait的泛型
模式匹配
类型推断
高效的C绑定
Rust很多特性参考借鉴了其他语言,函数式、类型系统借鉴了Haskell,语法风格等参考了C/C++等等,并拥有独特的性质,比如所有权、生命周期系统。
安装
Rustup:Rust安装器和版本管理工具
安装Rust的主要方式是通过Rustup工具,真的是异常友好方便,对于类Unix系统而言,命令行下直接执行以下命令,即可完成安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
按照提示安装即可,默认会设置Rust工具链为稳定版、环境变量PATH等信息,执行结束提示:
Rust is installed now. Great! To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH environment variable. Next time you log in this will be done automatically. To configure your current shell run source $HOME/.cargo/env |
正常情况下会自动导入环境变量设置,也可以手动执行
export PATH="$HOME/.cargo/bin:$PATH" |
使环境变量生效在用户目录下,执行
| source $HOME/.cargo/env |
验证是否安装成功:
cargo --version/-V:输出cargo版本信息 rustc --version/-V:输出rustc版本信息 |
cargo是Rust的构建工具和包管理器,使用Rustup安装的时候,会默认安装cargo最新的稳定版,cargo很像Java中的maven、gradle,crate 是一个二进制项或者库。crates.io用来分发包的源代码,所以它主要托管开源代码,类似于maven仓库,Rustc是Rust的编译器
如果安装过程中出现设置错误等信息可以直接参照Rust官网,有中文版,很友好详细,另外学习Rust的官方教程The Book,中文翻译Rust-book-chinese
以上,Rust安装完毕
创建项目
Rust安装完毕之后,即可直接编写Rust了,命令行下执行
cargo new hello-rust
会在当前目录下生成一个hello-rust的新目录
hello-rust |- Cargo.toml |- src |- main.rs |
Cargo.toml :Rust的清单文件。其中包含了项目的元数据和依赖库
src/ :编写应用代码的地方
main.rs :默认生成的包含Rust main入口方法的程序
fn main() { println!("Hello, world!"); } |
$ cargo run Compiling hello-rust v0.1.0 (/Users/fengxinzi/rust/hello-rust) Finished dev [unoptimized + debuginfo] target(s) in 1.34s Running `target/debug/hello-rust` Hello, world! |
展望
众所周知,在编程语言中,更易读的高级语言和控制底层资源的低级语言是一对矛盾体。Rust想要挑战这一现状,它尝试为开发者提供更好的体验的同时给予开发者控制底层细节的权限。
Rust在设计之初就设定了必须同时兼顾性能和安全性的目标——既要有"底层语言"一样的性能,又要有"高层语言"的安全性(甚至在线程安全性方面比Java/C#等语言更加安全)。这样一种决不妥协的设计哲学,让Rust从一出生开始就注定了不平凡。
毫无疑问,其理念是非常有吸引力的,伴随着语言本身,很多概念晦涩难懂,对于初学者,Rust具有比较陡峭的学习曲线,其近乎苛刻的要求和繁杂的规则,并不适合作为入门语言。
阅读资料
Rust官网学习资料、文档很全,这里简单列一下常用的地址
Rust官网:https://www.rust-lang.org
官方书籍:https://doc.rust-lang.org/book/
中文版:https://kaisery.github.io/trpl-zh-cn/
Rust中文社区:https://rust-china.org




