Rust入门之路(一)-语言简介

发展史

Rust语言在2006年作为 Mozilla 员工 Graydon Hoare 的私人项目出现,而 Mozilla 于 2009 年开始赞助这个项目。第一个有版本号的 Rust编辑器于2012 年 1 月发布。Rust 1.0 是第一个稳定版本,于 2015年5月15日发布;

创建这个新语言的目的是为了解决一个顽疾:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,比如不会出现NULL指针等等

特点

Rust是一门系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。

高性能

Rust 速度惊人且内存利用率极高。它没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

高性能的特点,我认为主要是他规范了许多我们平时错误的编码方式,以及它对用户对堆的控制;Rust使用let作为变量的定义方式,而只有确认该变量是需要进行改变的则才加上mut,而且,对于变量名采用shadowing的方式,也大大减少由于需要转换而产生的大量**String,***Int等变量名存在,减少中间不必要的变量开销;

另一方便就是Rust的所有权机制:所有的值都有一个唯一的属主,值的有效范围跟属主的有效范围一样,值可以通过不可变引用&T传递,可变引用&mut T传递,T值递。在任何时候,或者有多个不可变引用,或者只有一个可变引用。Rust编译器在编译时执行这些规则同时检查所有引用的有效性。我们可以把他理解为去找别人(要(move),借(borrow ),看(引用))东西,假设张三手中只有一颗苹果,张三将他给了李四,这时该苹果的所属权由张三转移到了李四,那毫无疑问,张三无法吃到苹果了,而李四可以;

//其实这个例子使用struct,进行对象封装最好;这里就简写成这样;
 let apple = String::from("苹果");
let zhangShang = apple; //张三有颗苹果
//let lisi = apple; //error[E0384]: cannot assign twice to immutable variable `lisi`
let lisi = zhangShang; //张三将手中的苹果给了李四;
println!("李四吃 {}",lisi); //打印:   李四吃apple
//println!("张三也吃 {}",zhangShang) // error[E0382]: borrow of moved value: `zhang_shang`

可靠性

Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

生产力

Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

劣势

就是入手稍难了点,对于我学Java的来说,但总体还是能学的走;

展望

我觉得只要Rust照着初心往下走,应该会是另一个语言界的新一代霸主,而且覆盖在不同领域:WEB,桌面应用,后端服务,嵌入式等等(仅个人观点);

引用:百度百科;Rust官方文档

Q.E.D.