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版本中破坏向后兼容性。可是,为了一些较小的破坏兼容性的特性(例如增补关键字),就发布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的旧项目会被认为。
语言、标准库、编译器、文档等将有重要改进
在语言方面,, 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
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依然属于国际领先水平。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!