Rust编程语言2018年路线图
3月12日,Rust官方博客正式发布了
Rust’s 2018 roadmap 。
该路线图是在广泛征求社区主流意见的基础上制定的,其内容充实且务实。它的发布令社区大多数人感到振奋。
据我个人总结,该路线图主要包含以下三点:
将发布一个具有里程碑意义的重要版本(Edition 2018)
语言、标准库、编译器、文档等将有重要改进
致力于在网络、嵌入式、WebAssembly、CLI等四大领域形成生产力
Rust 2018 edition
Edition系列大致类似于其它软件的“长期支持版”(LTS),但也有很大不同。Edition计划每3到5年发布一次,以发布时所在年份命名。今年将要发布的是Edition 2018,同时将此之前的Edition追授为Edition 2015(因为Rust 1.0在2015年发布)。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
. . .
如上图所示,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依然属于国际领先水平。