语言设计的目的

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

适用场景

Rust致力于成为优雅解决高并发和高安全性系统问题的编程语言,适用于大型场景,即创造维护能够保持大型系统完整的边界。

效率

性能与标准的C++不相上下

特殊语法

Rust的具体语法和c,c++类似都是由花括号限定代码块,还有一样控制流关键字,例如if,else,while,for。普通的if表达式也取代了C三元表达式,一个函数不需要以return表达式结束,函数最后的表达式就是返回值。
此外,在安全代码里不允许空指针,悬垂指针和数据竞争。数值只能用一系统固定形式来初始化,要求所有输入已经被初始化。在其他语言中复制函数指针或者有效或者为空,比如在链表和二叉树等数据结构中,Rust核心库提供Option类型,用来测试指针是否有值,Rust同时引入添加语法来管理生命周期,而且编译器通过租借检查器来说明相关理由。
不能使用自动垃圾回收系统,通过Rall来管理内存和资源,还可选引用计数。

官方库

官方网站:https://www.rust-lang.org/

第三方库

  • Cargo Cargo 是 Rust 的构造系统和包管理器,开发者可以用 Cargo 下 载相应的依赖和构造代码。Cargo 非常容易上手,但是功能确是非常强大,Cargo 还可以帮 开发者设置相应的单元测试和基准测试,所以使用 Cargo 进行单元测试和基准测试是非常 省心。Cargo 是多合一的一站式工具,也是同类工具中,我使用过的最强大的

  • Rustup rustup 是 Rust 的一个安装器,使用 rustup 来更新 Rust 的编译器,它跟 Python 的 virtualenv 有点像,可以维护不同版本的 Rust 编译器,例如 stable, nightly,beta 等

  • ust-clippy rust-clippy 是 Rust 的一个静 态代码分析工具,虽说 Rust 的编译器在分析 Rust 代码上已经做了非常多的工作了,但是 rust-clippy 可以帮你更进一步,编写出更好的代码。总会有一些代码可以进行简化以提高 代码的可读性,或者是更符合最佳实践,而 rust-clippy 就是会给你相应的提示,以协助 你编写出更好的代码。

社区

https://www.rust-lang.org/community ,从社区的活跃度上来看,发贴数量还是可以的,一般的提问也都会得到回复。但是中文社区就很差劲儿了

开发工具

Rust编译器,基于其设计理念,编译器是可以检查的,无需程序员操心。并且因为Rust所倡导的安全的概念,所以编译器会做尽可能多的检查,争取在编译期就能发现问题。此外编译信息还非常的友好和详细。

开发模式

总结

亮点:内存管理、性能强劲、社区易上手、文档完整。缺点:学习曲线陡峭,缺少IDE,没有完整的生态。能够改变你对编程的看法。

深入了解这个新技术

。。。。待续

这个技术解决了哪些痛点?

软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,不会出Null指针等。
最大的亮点就是内存安全,其他语言管理内存的方式无外乎两种:一种是使用垃圾回收算法,另一种是使用手工管理内存。使用手工管理内存的缺点就不多说了,不易维护,容易出错等。而使用垃圾回收算法呢,这种被其他语言为之骄傲的特性呢,使用垃圾回收算法就一定会有运行时和垃圾回收时的停顿,这就不适合系统编程了。而Rust通过新加入的生命周期和所有权特性,就可以实现内存的自动回收,并且无需依赖运行时,可以大大地避免内存泄漏或者悬停指针之类的问题。

别的技术为什么不能解决?

这个技术 用怎样的方法解决问题?

采用这个技术 真的是最好的办法 吗?

如果不用这个技术,你会怎样独立解决这类问题?