图书前言

前    言

笔者一直在讲究性能的领域做开发,比如网络服务器、算法、图像、游戏以及嵌入式等。这些领域通常只能用C/C++,因为C/C++是相对高效的编程语言。但这哥俩比较调皮,稍微没看好它们,它们就会闯个祸,弄个纰漏,导致系统的稳定性一直让人提心吊胆。有时真羡慕隔壁项目组使用Java的老兄,毕竟Java以安全稳定和跨平台著称,但Java天生性能一般,所以应用得也不是很广。为此,笔者经常仰天长叹,C和Java为何不能合二为一!

Rust应运而生。Rust站在了前人的肩膀上,借助最近几十年的语言研究成果,创造出了所有权与生命周期等崭新的概念。相对于C/C++等传统语言,它具有天生的安全性。换句话说,你无法在安全的Rust代码中执行任何非法的内存操作。相对于C#等带有垃圾回收机制的语言来讲,它遵循了零开销抽象(Zero-Cost Abstraction)规则,并为开发者保留了最大的底层控制能力。

可见,Rust不但具有C/C++的性能,而且具有C/C++不具备的安全性。所以它能替代传统的C/C++应用场合,比如嵌入式开发和服务器开发等,而且更适合这些场合,因为这些场合除性能要求高外,对健壮性要求也非常高,而Rust能主动帮助程序员规避传统C/C++程序员经常犯的错误。可见,Rust前途非常光明,大有取代C/C++的趋势,这也是大公司新项目采用它的原因。

Rust由开源基金会Mozilla推动开发,它的背后有一个完善且热情的社区。年轻的Rust正在众人合力推动之下不断进步,许多像你我一样的开发者共同决定着Rust的前进方向。你能够在Rust的托管网站GitHub上追踪到最新的源代码及开发进展,甚至是参与到Rust本身的开发中。但不得不承认的是,Rust独特的创新性也给我们带来了突兀的学习曲线。这些概念与传统语言雕刻在我们脑海中的回路是如此的不同,以至于使众多初学者望而却步。这让人无比遗憾。于是,一直提倡学习曲线要平缓的笔者撰写了本书,希望能对Rust的推广起到一个添砖加瓦和抛砖引玉的作用。

Rust作为开源的、跨平台的系统级编程语言,可以帮助你编写出更为快速且更为可靠的软件,在给予开发者底层控制能力的同时,通过深思熟虑的工程设计,避免了传统语言带来的诸多麻烦。

关于本书

本书由浅入深地探讨了Rust语言的方方面面。全书共分17章,从Windows和Linux的Rust开发环境搭建,到基本的语言语法、函数、选择、循环结构,再到复杂的数据类型、字符串、指针、多线程、标准库、文件读写,最后到网络编程实战、图像与游戏编程实战、数据分析实战,基本覆盖了Rust开发所需要的常见知识。

另外,笔者并没有把一些冷门、生僻和不常用的知识介绍给大家,因为学这些内容“性价比”太低,还会打击初学者的信心。总之,笔者认为对于初学者而言,学习曲线一定要平缓,因此设计的网络案例、游戏案例、数据分析案例也是短小精悍,尽量给读者带来启发。

配套资源下载

本书配套示例源代码、PPT课件、作者QQ答疑服务,需要用微信扫描下面的二维码获取。如果阅读中发现问题或有疑问,请联系booksaga@163.com,邮件主题写“Rust编程与项目实战”。

碍于作者能力有限,本书难免存在疏漏之处,还望读者不吝赐教,我们会随着Rust的迭代升级,不断对本书进行更新与勘误。作者答疑QQ参见配套下载资源。

作者

2024年1月