不想看我写的,直接跳官网:Rust programming language
简介:
Rust是一门系统编程语言 [1] ,专注于安全 [2] ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似 [3] ,但是设计者想要在保证性能的同时提供更好的内存安全。 Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。 [4] Rust的设计者们通过在研发Servo网站浏览器布局引擎过程中积累的经验优化了Rust语言和Rust编译器。
Rust已经连续三年(2016,2017,2018)在Stack Overflow开发者调查的“最受喜爱编程语言”评选项目中折取桂冠。
--百度百科
口号:
Empowering everyone to build reliable and efficient software.
也就是说,Rust的本质在于赋能,让每个人都能写可靠高效的软件,让你在更广泛的编程领域走的更远,写出自信。
初学者可能会困惑,尤其是有其他编程语言背景的人,编程语言作为工具使用,锻炼思维,没其它能力呀,不理解怎么赋能,还能写出自信,搞传销呢?不理解没关系,以后慢慢就明白了。
特点:
- 快
Rust没有运行时,没有垃圾收集器,有很快的运行速度,你可能会想,没有像Python,Java的运行时,那它写着和c一样慢吧,不是的,它有很好的表现能力,很高的抽象能力,效率刚刚的,可以运行在嵌入式系统中,也能很容易地整合其它语言。 - 可靠
Rust有丰富的类型系统和所有权模型,不仅能保证内存和线程安全,还能帮你在编译时找到各种Bug,戏称“fighting compiler”。 - 高生产力
Rust有丰富的文档,友好的编译器,各种各样的工具,比如:强大的包管理工具cargo,格式化工具fmt,调试工具clippy等。也支持很多编辑器,比如:sublime,vscode,intellij等。
其实吧,目前生产力并不高,编辑器插件有各种bug,不过社团对这方面很重视。
目的:
创建这个新语言的目的是为了解决一个顽疾:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,比如不会出现Null指针等等。
开源项目:
系统级语言当然写系统了,不像某o,说是系统级语言,却没法写操作系统。一个类Unix操作系统,目前各种功能已完备。
Redox - Your Next(Gen) OS - Redox - Your Next(Gen) OSMozilla的下一代浏览器引擎,中国目前没有自己的浏览器引擎。项目之大,可见一斑,Servo与Rust语言相辅相成。
Servo, the parallel browser engineCargo--Rust的编译器,已自举。
The Cargo Book
示例代码:
fn main() {
let greetings = ["Hello", "Hola", "Bonjour",
"Ciao", "こんにちは", "안녕하세요",
"Cześć", "Olá", "Здравствуйте",
"Chào bạn", "您好"];
for (num, greeting) in greetings.iter().enumerate() {
print!("{} : ", greeting);
match num {
0 => println!("This code is editable and runnable!"),
1 => println!("¡Este código es editable y ejecutable!"),
2 => println!("Ce code est modifiable et exécutable !"),
3 => println!("Questo codice è modificabile ed eseguibile!"),
4 => println!("このコードは编集して実行出来ます!"),
5 => println!("여기에서 코드를 수정하고 실행할 수 있습니다!"),
6 => println!("Ten kod można edytować oraz uruchomić!"),
7 => println!("Esse código é editável e executável!"),
8 => println!("Этот код можно отредактировать и запустить!"),
9 => println!("Bạn có thể edit và run code trực tiếp!"),
10 => println!("这段代码是可以编辑并且能够运行的!"),
_ => {},
}
}
}