【CSDN 编者按】在 2020 年,Rust 的 Github Star 数达到了 51K,Reddit Fans 则涨至 125 K,全年合并 PR 有 8114 个。这些数据无不在说明,Rust 正成为最受欢迎的编程语言。
当今世界科技发展日新月异,2015 年 5 月 15 日,Rust 1.0 版本正式面世,在这五年多的时间中,Rust 改变了许多,凭借自身的优势,Rust 也连续四年成为开发者最受欢迎的编程语言。目前,也有越来越多的项目及企业开始选择使用 Rust 作为其应用及工具开发语言。
发布的版本
2020 年,Rust 官方团队一共发布了 9 个主要版本,以及若干修订版。主要版本分别如下:
-
1.41.0 2020.1.30 发布
-
1.42.0 2020.3.12 发布
-
1.43.0 2020.4.23 发布
-
1.44.0 2020.6.4 发布
-
1.45.0 2020.7.16 发布
-
1.46.0 2020.8.27 发布
-
1.47.0 2020.10.8 发布
-
1.48.0 2020.11.19 发布
-
1.49.0 2020.12.31 发布
可以看到,官方团队采用的是 6 周的发布周期,并严格执行。
一些重大特性
今年的 Rust 版本更新中,有以下值得注意的功能升级。
v1.41 中的,孤儿规则适当放宽。也就是现在支持以下写法了:
impl<T> ForeignTrait<LocalType> for ForeignType<T> {
// ...
}
详情可参考:https://blog.rust-lang.org/2020/01/30/Rust-1.41.0.html#relaxed-restrictions-when-implementing-traits
v1.42 中的 Subslice patterns 和 matches!
Subslice patterns 指的是模式匹配里面,可以这样用了:
fn foo(words: &[&str]) {
match words {
["Hello", "World", "!", ..] => println!("Hello World!"),
["Foo", "Bar", ..] => println!("Baz"),
rest => println!("{:?}", rest),
}
}
fn foo(words: &[&str]) {
match words {
// Ignore everything but the last element, which must be "!".
[.., "!"] => println!("!!!"),
// `start` is a slice of everything except the last element, which must be "z".
[start @ .., "z"] => println!("starts with: {:?}", start),
// `end` is a slice of everything but the first element, which must be "a".
["a", end @ ..] => println!("ends with: {:?}", end),
rest => println!("{:?}", rest),
}
}
新增 matches! 宏。
// Using a match expression:
match self.partial_cmp(other) {
Some(Less) => true,
_ => false,
}
// Using the `matches!` macro:
matches!(self.partial_cmp(other), Some(Less))
let foo = 'f';
assert!(matches!(foo, 'A'..='Z' | 'a'..='z'));
let bar = Some(4);
assert!(matches!(bar, Some(x) if x > 2));
v1.44 主要有:
-
cargo tree 集成进 cargo 本身
-
no_std 支持 async/await 了
v1.46 主要有:
-
const fn 改进。它允许你在编译期做很多计算工作。比如, const-sha1 crate 可以让你在编译期计算 SHA-1 哈希。这导致在微软的 WinRT Rust 绑定的实现上,有 40 倍的提速。
-
v1.47 Traits on larger arrays。大数组上的 Trait。现在可以这样的:
fn main() {
let xs = [0; 34];
println!("{:?}", xs);
}
其它:
-
docs.rs 文档现在允许选择 build target 了。
-
rustdoc 中可更方便地作相对引用 link。
Mozilla 裁员事件
由于疫情波及,Mozilla 收支平衡产生了问题,Mozilla 在本年度共进行了两轮裁员。年初时,Mozilla 就已裁掉了 70 名雇员,总员工人数减少至 1000 名左右。而在 8月,又进行了 2 次裁员,本次再裁 250 人,占比高达 25%。裁员涉及到 Servo 团队和 Rust 团队中的一些成员。
Rust 基金会正式成立
此前 Rust 就准备成立单独的基金会,从而从 Mozilla 中脱离出来,进入更广阔的发展空间。而就在2月9日,Rust 基金会终于正式成立了(https://foundation.rust-lang.org/)!
Rust 基金会董事成员包括:亚马逊、Google、华为、微软和 Mozilla。另外,值得一提的是华为对 Rust 如此重视,应是看好国内 Rust 的应用和发展。
总体来说,成立该基金会的目的是为了 Rust 维护人员可以快乐地把工作做到最好,并且基金会的主要目标是启动 Rust 贡献者(特别是那些自愿提供且不受雇主支持的贡献者)。
整个软件行业似乎都在向着 Rust 迈进。AWS 使用 Rust 来部署 Lambda无服务器运行时,以及 EC2 的某些部分。Facebook 已开始使用 Rust,此外还有苹果、Google、Dropbox和Cloudflare也在使用。
Rust 语言中文社区 RustCC 的成长
在 2020 年,Rust 的 Github Star 数达到了 51K,Reddit Fans 则涨至 125 K,全年合并 PR 有 8114 个。这些数据无不在说明,Rust 正成为最受欢迎的编程语言。
回头来看国内社区。2020 年,Rust 语言中文社区公众账号的粉丝数量:截止2020年12月,已超过1w,以下是粉丝数增长曲线图。
城市分布:
性别分布:
社区内容建设
2020 年,社区小团队坚持创作。到年末,已经完成的创作内容有:
-
Rust FFI 编程 已完成 22 期。
-
Rust 每周一库 已完成 33 期。
-
Rust 每周一知 已完成 13 期。
-
Rust 日报 已完成超过 1000 期。
-
Rust 唠嗑室 已完成 18 期 。
2020 年停止了很多线下的活动,但是线上活动开启了。Rust 唠嗑室,定期在线举办线上 Meetup。并且一些出版社也引入了新的优秀 Rust 外文书籍,比如 Rust in action,将由社区的小伙伴们翻译。并且出版社也开始策划挖掘更多的 Rust 原创书籍。
展望 2021
-
Const generic 有希望稳定并发布
-
Rust 基金会会推动整个 Rust 社区快速发展
-
Bigtechs 带头大规模使用 Rust
-
Rust 在区块链研发领域继续拓展,逐渐占领头部份额
-
Rust 在云原生领域、Serverless 领域有突破性进展,在嵌入式、IoT 领域开始发挥作用
-
Rust 异步生态继续丰富完善
-
国内 Rust 语言影响力快速提升
相信,Rust 在未来 2~5 年内,会迎来一个爆发,并在主流程序员群体中广泛传播。
相关阅读:
-
Rust 2020 调查报告出炉
-
RUST CHINA CONF 2020/首届中国 Rust 开发者大会:https://live.csdn.net/room/u012067469/3VT3jORs
-
RUST CHINA CONF 2020/首届中国RUST开发者大会:https://live.csdn.net/room/u012067469/51UUkkjG
点分享 点收藏 点点赞 点在看
文章评论