世界上最受欢迎的编程语言,你为何看不上?
Stack Overflow 开发者调查中,有一项“最受欢迎的编程语言”—— Rust ,为什么Rust可以这么出色呢?
就我个人而言,当我第一次听说 Rust 时,我是一名开发人员和一名数据科学家,使用Python和Go等语言进行编码。我喜欢这两种语言,而且我几乎每天都在使用 Python,偶尔也使用 Go。出于好奇,我开始学习Rust,因为有Python编程背景,所以学起Rust并不容易,因为Rust与其他流行的语言非常不同。
Rust的起源和性质
Rust编程语言于2010年问世,并迅速流行起来,它提供的性能和特性使其对那些把安全和速度放在首位的代码开发人员非常有吸引力。Rust最初是Mozilla员工格雷顿·霍尔(Graydon Hoare)的一个业余项目。
Mozilla看到了这个新语言的潜力,并在发布之前开始赞助它。从一开始,Rust就专注于安全和性能。安全部分主要来自Rust内存处理的方式。
Rust没有垃圾回收,ust的并发机制与C++一样,就是调用原生操作系统线程。Rust在并发方面的优势是,能静态检查“数据竞争”问题。Rust在并发方面的优势是,能静态检查“数据竞争”问题。也正因为如此,火狐(Firefox)、Cloudflare、Dropbox和Yelp都十分青睐Rust。
Rust突出的第二个关键指标是性能。Rust速度很快,是真的快,在某些任务上甚至比C/C++速度还快,在安全方面,C和Rust有很大的不同。C语言非常不安全,因为你需要自己处理内存。Rust则是在C++的基础上进一步优化。Rust的对象有一个所有者,和多个引用。
Rust只允许有一个所有者,传递和赋值会导致所有权移动。这看起来像C++的unique_ptr,但实际上更像C++的移动语义。也就是说C++拷贝是隐式的移动是显式的,Rust移动是隐式的。当然Rust在这里有编译器的静态分析,没有运行时开销。
为什么要学习Rust?
Rust不是面向对象的,也不是功能性的。像C和Go一样,也就是说,Rust确实支持一些OO和功能特性,比如方法和闭包。那为什么要学习Rust呢?因为它是一种具有并发性和支持并行性的现代语言,它是世界上最快的编程语言之一,而且内存非常安全,而且轻量级。最重要的是,它可以让你成为一名更加优秀的程序员,因为当你在用Rust编程时,你需要思考一些你之前从来没有思考过的最佳实践。
关于Rust的书籍
如果你已经打算学习Rust了,接下来要说的这本书你一定要去看——— 《The Rust Programming Language》
这本书是 Rust 官方文档,提供了在线版和纸质书,概念解释、代码实现和阅读体验相当好。豆瓣评分9.0,被亲切地成为“Rust 圣经”,本书从基本原则出发,给出了 Rust 语言的概览。你将在阅读本书的过程中构建几个项目,读完本书后,你就能扎实地掌握 Rust 语言。
前三章将带你快速了解Rust的基础知识,建议这个三章快速浏览就可以了,从第四章开始涉及内存管理方面的知识,适合有一定经验的程序员;第5章开始介绍Rust结构,和C语言中的结构不太相似,因此这一章务必重视;第6章介绍了枚举和模块匹配;第7章介绍模块;第8章介绍集合。
Rust的错误处理方式有所不同,关于这方面的知识,会在第9章进行一个深入解释;第10章介绍了泛型相关知识;第11章介绍了如何编写自动化测试;第12章介绍了如何构建命令行程序;第13章介绍了Rust中的函数式语言功能,迭代器与闭包;第15章介绍了智能指针;接下来的三个章节讨论了Rust的面向对象功能、模式匹配和高级功能,最后一章采用扩展示例的形式介绍了多线程Web服务器。
2018版的Rust语言包含许多改进,使Rust更符合人体工程学且更易于学习。由于这本书是官方出版,因此相对应的更新也更及时,目前,你已经可以在官网在线阅读最新版本。总而言之,如果你想从事Rust编程相关工作,这本书一定要列入你的必读书单。