前言 PREFACE
上大学期间,我从事过编译器的研究与实现,这个过程并不顺利,最终并没有开发出可以在生产环境中使用的编译器产品(像GCC或LLVM那样)。但这个过程让我个人收获很大,尤其在对编程语言的研究方面。
作为一个精通C语言的开发者,我同时在使用很多其他的编程语言,这是为了适应不同类型产品的开发需要。大量的开发过程让我全面地了解了这些编程语言(如C++、Java、ECMAScript、Kotlin甚至FORTRAN),与众不同的编程语法以及设计者的编程思想。在了解这些之后,我常常会将它们的优点相互比较,并尝试以一个较为通用的语言作为基础,希望设计出一个能解决大多数迄今为止计算机科学家们发现的主要编程问题的编程语言。这些想法往往会在开发过程中不由自主地产生。
经过长时间的思考与经验积累,我认为一个优秀的编程语言必须具备以下特质。
(1)执行高效。最好能直接编译到硬件原生语言(机器语言),避免解释执行。
(2)编译时保障内存安全。在编译时能够确定数据的生命周期,防止垃圾的产生或在运行时检测并回收垃圾。
(3)并发安全。能够适应高并发环境并保证运行安全。
(4)支持面向对象编程。能够实现面向对象的编程思想。
(5)结构管理。可以使用包管理器管理代码,并具有良好的程序结构。
(6)易于学习和使用。软件效率不仅体现在运行上,还体现在开发上。
具备了以上6点特质,基本上就是一门“完美语言”。我认为这种语言是不存在的,或者正在开发中。但事情往往就是这样,你认为没有诞生的东西往往已经被开发很久了。Rust语言就几乎具备以上全部的优秀特质。
Rust语言完全具备以上前5条特质,唯一的缺点就是不那么易于学习,这是因为以上总结出的优点都是主流编程语言存在问题的解决方法,意识到这些问题需要大量的实践,而且只有在意识到这些问题之后,才会理解这些优秀特质在开发中发挥的重要作用。因此,Rust语言为了实现这些特质采用了很多还没有流行起来的新方法(例如所有权机制)的作用较为难以理解,也就难以被学习。
编写本书的目的是让Rust学习变得更加容易,适合Rust入门者学习和使用参考。书中将Rust语言最经典、最广泛的语法以程序实例的方式介绍给读者,并尽可能地将它们讲得通俗易懂。本书内容依赖的背景知识会在章节开始介绍,如果这些知识对您来说驾轻就熟,请忽略它们。但是,Rust语言绝对不适合作为刚刚接触编程的入门者学习,学习它之前请尽量掌握C语言、C++语言等有关知识,它们是学习Rust语言知识的依赖项。
作者在本书出版前曾在“菜鸟教程”网站发布过社区版教程,且得到了来自Rust全球社区的支持,这些支持使书中的内容更加全面。
总体来说,Rust语言不是一门易于学习的语言。抱着这个心态,您也许可以更容易地学习这门语言。这门语言几乎可以在C++能够运行的一切环境中运行,且运行效率非常高,它的高并发能力被迄今为止使用过它的开发者们赞不绝口。
希望这个由Mozilla基金会开发的编程语言带给您全新的编程体验!
本书提供程序代码等配套资源,请扫描下方二维码或者到清华大学出版社官方网站本书页面下载。
配套资源
樊少冰
2022年3月