Rust编程语言2018年路线图

2019-07-13 09:21发布

Rust编程语言2018年路线图

3月12日,Rust官方博客正式发布了Rust’s 2018 roadmap
该路线图是在广泛征求社区主流意见的基础上制定的,其内容充实且务实。它的发布令社区大多数人感到振奋。 据我个人总结,该路线图主要包含以下三点:
  1. 将发布一个具有里程碑意义的重要版本(Edition 2018)
  2. 语言、标准库、编译器、文档等将有重要改进
  3. 致力于在网络、嵌入式、WebAssembly、CLI等四大领域形成生产力

Rust 2018 edition

Edition系列大致类似于其它软件的“长期支持版”(LTS),但也有很大不同。Edition计划每3到5年发布一次,以发布时所在年份命名。今年将要发布的是Edition 2018,同时将此之前的Edition追授为Edition 2015(因为Rust 1.0在2015年发布)。 | 2015 edition | 2018 edition | 2022 edition |--------------------|--------------------|-------------------- v1.0 v1.31 v1.65 如上图所示,Edition只是在1.x版本生长线上为某个区间打上标记/TAG。 我个人认为,推出Edition系列的目的就是为了方便引入“向后不兼容性”,同时将不兼容的危害控制在最小范围内。要怪只能怪1.0发布那时候把话说满了,官方不想也不能在1.x版本中破坏向后兼容性。可是,为了一些较小的破坏兼容性的特性(例如增补catch关键字),就发布2.0、3.0吗?考虑到Python 3的教训,Rust决定铁了心一直用1.x版本,永不推出2.0、3.0,因为它给人的割裂感太强。 支撑Edition的核心措施是:一个编译器同时向后支持所有Edition。以编译器v1.31为例,它可以用2015 Edition的语义编译代码,也可以用2018 Edition的语义编译代码。升级编译器,并不会自动升级Edition;不升级Edition,就始终保持向后兼容。所以,即使用户为了代码兼容性不愿意升级Edition,也可以放心的升级编译器,享受新版编译器带来的性能提升、功能改进和BUG修复。库(crate),依赖库和被依赖库,都可以各自独立的选择Edition,互不影响,一个编译器就能把它们编译进同一个项目里。要想升级新Edition,需在Cargo.toml文件里增加一行edition = "2018";新创建的项目会自动加上这一行。未明确指定Edition的旧项目会被认为edition = "2015"

语言、标准库、编译器、文档等将有重要改进

在语言方面,impl Trait, Trait, Module, Macros 2.0, Generators/async/await 标准库方面,SIMD, custom allocators 编译器方面,incremental recompilation, non-lexical lifetimes, Performance 文档方面,2nd book, rustbyexample, api-guidelines

致力于在四大领域形成生产力

以官方开发人员为主导,集合社区活跃贡献者,组建多个工作组,在各自领域深入开展工作,力求在年底前形成较为完善的生态环境,成熟到可以应用于生产环境。

网络/Networking

futures/promise, tokio, await/async, generators/corountins

嵌入式/Embedded

arm/cortex-m, avr, risc-v, msp430, Arduino, OpenWRT, Raspberry Pi working-group
@japaric embedded-hal
svd2rust
Tock-OS

WebAssembly/WASM

working-group https://hacks.mozilla.org/2018/03/making-webassembly-better-for-rust-for-all-languages/ https://hacks.mozilla.org/2018/01/oxidizing-source-maps-with-rust-and-webassembly/ stdweb

命令行接口/CLI

Rust makes writing crossplatform, tested, modern command line applications frictionless while incorporating industry best practices and providing great documentation.
working-group clap
docopt
structopt
quicli

写在后面

在该2018路线图发表前后,有两个相关事件值得关注:

Rust获得2018年度最受群众欢迎奖

3月13日,Rust获得Stack Overflow主办的2018年度最受群众欢迎奖,这是Rust连续3年获此殊荣,可见并非偶然。这个需要正确解读:Rust用户中有高达78.9%的比例喜爱这门语言;反过来说顶多有21%的用户痛恨这门语言或对之无感。爱的人多、恨的人少,说明Rust能很好地解决用户痛点,能真正地黏住用户。反观别的某些语言,虽然用户总量很大,但其中有很大比例是因为工作需要或生活所迫,真正喜爱该语言的比率却不高。不喜欢却又不得不用,是一件很无奈的事情。

W3C发布WebAssembly首个公开工作草案

2月15日,W3C发布WebAssembly首个公开工作草案,标志着WASM规范1.0已经基本成型。而WASM在实际工作中的应用其实早就开展了。在目前所有编程语言中,对WASM的支持而言,Rust依然属于国际领先水平。