查看原文
其他

回溯 Rust 2020:正在成为最受欢迎的编程语言

唐刚 CSDN 2021-04-25

【CSDN 编者按】在 2020 年,Rust 的 Github Star 数达到了 51K,Reddit Fans 则涨至 125 K,全年合并 PR 有 8114 个。这些数据无不在说明,Rust 正成为最受欢迎的编程语言。

作者 | 唐刚       责编 | 张红月
出品 | CSDN(ID:CSDNnews)

当今世界科技发展日新月异,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 主要有:

  1. cargo tree 集成进 cargo 本身

  2. 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);}

其它:

  1. docs.rs 文档现在允许选择 build target 了。

  2. 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 吸引了越来越多的用户群。Rust 是由 Mozilla 开发人员 Graydon Hoare 在 2006 年开发的个人项目,从那个时候起,就像它所命名的 Rust 真菌一样,开始传播,如今已被广泛应用于构建网络、嵌入式计算机、分布式服务和命令行。
根据超过65,000名开发人员的调查反馈,Rust已连续五年位居Stack Overflow的“最受喜爱”编程语言榜首。
           
(来源:Stack Overflow)
同时,在 Redmonk 的编程语言排名中,Rust 跻身前 20 名,鉴于 Java,C,JavaScript 等语言的地位,这个成就很了不起。
       
2019 年初,已经有数百家公司在软件生产中使用 Rust,例如 Dropbox、Yelp 和 Cloudflare 等,今年这个数字更大。
Rust 也同样被很多科技巨头青睐,比如 Google、微软、苹果、Facebook 和 Mozilla 等。
Google 的第三款操作系统——Fuchsia 当初的备选语言,Rust就是其中的热门候选之一。2019年,微软安全响应中心(MSRC)发文宣布,这家公司正在探索更安全的系统编程语言,使用Rust编程语言作为C、C++和其他语言的替代方案,以此来改善应用程序的安全状况,这件事当时还引起了关于Rust的一波热议。此后,微软又陆续推出一些基于 Rust 的项目,比如开源的 Windows 运行时项目 Rust/WinRT。如今,Rust 正式升级成为微软第一梯队的编程语言,与 C++、C# 平级。
此外,新的服务器端 JavaScript 运行时,被视为 Node.js 的潜在继任者——Deno,也是采用 Rust 编写,并为 TypeScript(Microsoft 对大型 JavaScript 项目的扩展)提供优先级的支持,这是由微软维护和管理的 JavaScript 大规模项目拓展。
在一篇官方博客中,Rust还总结了自2015年以来Rust经历的里程碑式进步,感兴趣的小伙伴可查看原文:https://blog.rust-lang.org/2020/05/15/five-years-of-rust.html。

整个软件行业似乎都在向着 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 年,社区小团队坚持创作。到年末,已经完成的创作内容有:

  1. Rust FFI 编程 已完成 22 期。

  2. Rust 每周一库 已完成 33 期。

  3. Rust 每周一知 已完成 13 期。

  4. Rust 日报 已完成超过 1000 期。

  5. Rust 唠嗑室 已完成 18 期 。

2020 年停止了很多线下的活动,但是线上活动开启了。Rust 唠嗑室,定期在线举办线上 Meetup。并且一些出版社也引入了新的优秀 Rust 外文书籍,比如 Rust in action,将由社区的小伙伴们翻译。并且出版社也开始策划挖掘更多的 Rust 原创书籍。


展望 2021


  1. Const generic 有希望稳定并发布

  2. Rust 基金会会推动整个 Rust 社区快速发展

  3. Bigtechs 带头大规模使用 Rust

  4. Rust 在区块链研发领域继续拓展,逐渐占领头部份额

  5. Rust 在云原生领域、Serverless 领域有突破性进展,在嵌入式、IoT 领域开始发挥作用

  6. Rust 异步生态继续丰富完善

  7. 国内 Rust 语言影响力快速提升

相信,Rust 在未来 2~5 年内,会迎来一个爆发,并在主流程序员群体中广泛传播。

相关阅读:

抽成 30% 的苹果税是良心价?谷歌也学“坏”了

☞达“超人”水平?强化学习得这么用!

“面向对象就是一个错误!”

乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存