From d968f77caa8ea2d4e359ced93f5a351b51133f3c Mon Sep 17 00:00:00 2001 From: gxlct008 Date: Thu, 20 Jan 2022 00:21:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97=E5=92=8C=E5=AD=97=E6=AF=8D=E5=A4=A7=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- book/contents/into-rust.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/book/contents/into-rust.md b/book/contents/into-rust.md index dc7e79ed..8c08b14a 100644 --- a/book/contents/into-rust.md +++ b/book/contents/into-rust.md @@ -2,7 +2,7 @@ ## Rust 发展历程 -Rust 最早是 Mozilla 雇员 Graydon Hoare 的个人项目。从 2009 年开始,得到了 Mozilla 研究院的资助。2010 年项目对外公布,2010 ~2011 年间实现自举。从此以后,Rust 在设计变化->崩溃的边缘反复横跳(历程极其艰辛)。终于,在 2015 年 5 月 15 日发布 1.0 版。 +Rust 最早是 Mozilla 雇员 Graydon Hoare 的个人项目。从 2009 年开始,得到了 Mozilla 研究院的资助。2010 年项目对外公布,2010 ~2011 年间实现自举。自此以后,Rust 在设计变化->崩溃的边缘反复横跳(历程极其艰辛)。终于,在 2015 年 5 月 15 日发布 1.0 版。 在此研发过程中,Rust 建立了一个强大且活跃社区,形成了一整套完善稳定的项目贡献机制(Rust 能够飞速发展,与这一点密不可分)。Rust 现在由 [Rust 项目开发者社区](https://github.com/rust-lang/rust) 维护。 @@ -11,7 +11,7 @@ Rust 最早是 Mozilla 雇员 Graydon Hoare 的个人项目。从 2009 年开始 - 首先,因为 Rust 语言特性较为复杂,所以需要全盘考虑的问题非常多; - 其次,Rust 当时的参与者太多,七嘴八舌的声音很多,众口难调,而 Rust 开发团队又非常重视社区的意见; - 最后,一旦 1.0 快速发布,那么后续大部分语言特性就无法再修改,对于有完美强迫症的 Rust 开发者团队来说,某种程度上的不完美是不可接受的。 - + 因此,Rust 语言用了足足 6 年时间,才发布了尽善尽美的 1.0 版本。 ## 为何又来了一门新语言? @@ -26,7 +26,7 @@ Rust 最为人诟病的点,也就一个:学习曲线陡峭。不过其实严 其实从我内心不可告人的角度出发,并不希望 Rust 大众化,因为这样可以保饭碗、保薪资,还能更有行业内地位。但是从对 Rust 的喜爱角度出发,我还是希望能卷一些。但是,目前来看真的卷不动,现在全世界范围内 Rust 的需求都大于供给,特别是优秀的 Rust 程序员更是难寻。 -与 Go 语言相比,成为一个优秀的 Rust 程序员所需的门槛高得多,例如融汇贯通 Rust 语言各种中高级特性、闭着眼睛躺过各种坑、不用回忆无需查找就能立刻写出最合适的包/模块/方法、性能/安全/工程性的权衡选择信手拈来、深层性能优化易如反掌、异步编程小菜一碟,更别说 Rust 之外的操作系统、网络、算法等等相关知识。 +与 Go 语言相比,成为一个优秀的 Rust 程序员所需的门槛高得多,例如融汇贯通 Rust 语言各种中高级特性、闭着眼睛趟过各种坑、不用回忆无需查找就能立刻写出最合适的包/模块/方法、性能/安全/工程性的权衡选择信手拈来、深层性能优化易如反掌、异步编程小菜一碟,更别说 Rust 之外的操作系统、网络、算法等等相关知识。 所以,Rust 可以缓解内卷,而不是增加内卷。可以说是程序员的福音,不再是被随意替换的螺丝钉。 @@ -47,15 +47,15 @@ Rust 最为人诟病的点,也就一个:学习曲线陡峭。不过其实严 #### 运行效率 -得益于各种零开销抽象、深入到底层的优化潜力、优质的标准库和三方库实现,Rust 具备非常优秀的性能,和 C、C++ 是 [一个级别](https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust.html)。 +得益于各种零开销抽象、深入到底层的优化潜力、优质的标准库和第三方库实现,Rust 具备非常优秀的性能,和 C、C++ 是 [一个级别](https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust.html)。 -同时 Rust 有一个极大的好处:只要按照正确的方式使用 Rust,无需性能优化,就能实现非常优秀的表现,不可谓不惊艳, +同时 Rust 有一个极大的好处:只要按照正确的方式使用 Rust,无需性能优化,就能实现非常优秀的表现,不可谓不惊艳。 现在有不少用 Rust 重写的工具、平台都超过了原来用 C、C++ 实现的版本,将老前辈拍死在沙滩上,俨然成为一种潮流~~ #### 开发效率 -Rust 的开发效率可以先抑后扬来形容。在刚开始上手写项目时,你的开发速度将显著慢于 go、java 等语言,不过,一旦开始熟悉标准库常用的方法,开发效率将大幅提升,甚至当形成肌肉记忆后,开发效率将不会慢于这些语言,而且原生就能写出高质量、安全、高效的代码,可以说中高级 Rust 程序员就是高效程序员的代名词。 +Rust 的开发效率可以用先抑后扬来形容。在刚开始上手写项目时,你的开发速度将显著慢于 Go、Java 等语言,不过,一旦开始熟悉标准库常用的方法,开发效率将大幅提升,甚至当形成肌肉记忆后,开发效率将不会慢于这些语言,而且原生就能写出高质量、安全、高效的代码,可以说中高级 Rust 程序员就是高效程序员的代名词。 ### 个人的好处 @@ -93,10 +93,10 @@ Rust 的开发效率可以先抑后扬来形容。在刚开始上手写项目时 - UI 层开发,Rust 的 WASM 发展的如火如荼,隐隐有王者风范,在 JS 的基础设施领域,Rust 也是如鱼得水,例如`swc`、`deno`等。同时`nextjs`也是押宝 Rust,可以说 Rust 在前端的成功完全是无心插柳柳成荫。 - 基础设施层,数据库、搜索引擎、网络设施、云原生等都在出现 Rust 的身影,而且还不少。 -- 系统开发,目前 linux 已经将 Rust 列为即将支持的内核开发语言,是既 C 语言后第二门支持内核开发的语言,不过刚开始将主要支持驱动开发。 +- 系统开发,目前 Linux 已经将 Rust 列为即将支持的内核开发语言,是继 C 语言后第二门支持内核开发的语言,不过刚开始将主要支持驱动开发。 - 系统工具,现在最流行的就是用 Rust 重写之前 C、C++ 写的一票系统工具,还都获得了挺高的关注和很好的效果,例如 sd, exa, ripgrep, fd, bat 等。 -- 操作系统,现在在使用 Rust 开发的操作系统有好几个,其中最有名的可能就是谷歌的 Fuchsia,Rust 在其中扮演非常重要的角色 -- 区块链,目前 Rust 和 Go 可以说各领风骚,未来 Rust 可能会一统江湖 +- 操作系统,现在在使用 Rust 开发的操作系统有好几个,其中最有名的可能就是谷歌的 Fuchsia,Rust 在其中扮演非常重要的角色。 +- 区块链,目前 Rust 和 Go 可以说各领风骚,未来 Rust 可能会一统江湖。 类似的还有很多,我们就不一一列举。总之,现在有大量的项目在被用 Rust 重写,同时还有海量的项目在等待被重写,这些都是赚取 star 和认可的好机会。在其它语言杀成一片红海时,Rust 还留了一大片蓝海等待大家的探索! @@ -120,29 +120,31 @@ Rust 语言表达能力更强,性能更高。同时线程安全方面 Rust 也 #### Python -性能自然是 Rust 完胜,同时 Rust 对运行环境要求较低,这两点差不多就足够抉择了。不过 python 和 rust 的彼此适用面其实也不太冲突。 +性能自然是 Rust 完胜,同时 Rust 对运行环境要求较低,这两点差不多就足够抉择了。不过 Python 和 Rust 的彼此适用面其实也不太冲突。 ### 使用现状 - AWS 从 2017 年开始就用 Rust 实现了无服务器计算平台: AWS Lambda 和 AWS Fargate,并且用 Rust 重写了 Bottlerocket OS 和 AWS Nitro 系统,这两个是弹性计算云 (EC2) 的重要服务 -- Cloudflare 是 Rust 的重度用户,DNS、无服务计算、网络包监控等基础设施都都与 Rust 密不可分 +- Cloudflare 是 Rust 的重度用户,DNS、无服务计算、网络包监控等基础设施都与 Rust 密不可分 - Dropbox 的底层存储服务完全由 Rust 重写,达到了数万 PB 的规模 - Google 除了在安卓系统的部分模块中使用 Rust 外,还在它最新的操作系统 Fuchsia 中重度使用 Rust - Facebook 使用 Rust 来增强自己的网页端、移动端和 API 服务的性能,同时还写了 Hack 编程语言的虚拟机 - Microsoft 使用 Rust 为 Azure 平台提供一些组件,其中包括 IoT 的核心服务 - Github 和 npmjs.com,使用 Rust 提供高达每天 13 亿次的 npm 包下载 - Rust 目前已经成为全世界区块链平台的首选开发语言 -- Tidb,国内最有名的开源分布式数据库 +- TiDB,国内最有名的开源分布式数据库 尤其值得一提的是,AWS 实际上在押宝 Rust,未来对 Rust 的使用可能很快会上升到 **first-class** 的地位。 ## Rust 语言版本更新 与其它语言相比,Rust 的更新迭代较为频繁(得益于精心设计过的发布流程以及 Rust 语言开发者团队的严格管理): + - 每 6 周发布一个迭代版本 - 2-3 年发布一个新的大版本:Rust 2018 edition,Rust 2021 edtion 好处在于,可以满足不同的用户群体的需求: + - 对于活跃的 Rust 用户,他们总是能很快获取到新的语言内容,毕竟,尝鲜是技术爱好者的共同特点:) - 对于一般的用户,edition 大版本的发布会告诉他们:Rust 语言相比上次大版本发布,有了重大的改进,值得一看 - 对于 Rust 语言开发者,可以让他们的工作成果更快的被世人所知,不必锦衣夜行