本記事は、2022年5月に開催されたTechFeed Conference 2022のセッション書き起こし記事
「Rust 2024に向けて Rust 2021を理解しよう」
2022年4月にRust 2024のロードマップが公開されました。いま、 Rustで何ができていなくて、今後何ができるようになるのかについて紹介していきたいと思います。
LTの感想などをハッシュタグ
自己紹介です。@matsu7874というアカウントでTwitterをやっております。今はestieという会社でソフトウェアエンジニアをしています。 あとは
Rustの”エディション”と”テーマ”
まず、Rustにはエディション
エディションは、3年に1回追加が行われます。最新のコンパイラではもちろん最新のエディションのRustがコンパイルできます。また、古いエディションであるRust 2015 Rust 2018もコンパイルできます。 そして、他のエディションで書かれたクレートを使っていくようなこともできます。
つまり、エディションというのは、文法上の新しい試みを取り入れながらも後方互換性を守るというような仕組みになっています。

このエディションにはそれぞれテーマがあります。
Rust 2015は一番最初にリリースされた安定版です。またRust 2018では、エディションを使って後方互換性を守りながら新しい構文が導入されました。そしてRust 2021では、今までできなかったさまざまな記述方法がPreludeに追加されました。今はRust 2021が最新のエディションです。

次の新しいエディションは2024年に登場するということで、どのようなことをしていきたいか? という考えが公開されました。Rust 2024のテーマは
Rust 2024でめざす”エンパワーメントの拡大”
エンパワーメントの拡大というのは、具体的には以下の 3 つを指します。
- 学習しやすくする
(Flatten the learning curve) - ライブラリ作成者を支援する
(Help users help each other) - Rust に貢献しやすくする
(Help the Rust project scale)
まず、ひとつめの
Rust を学ぶ際、

具体的には、推論が強化されて2回書いている<T: Debug>
を書かなくて済むようになったり、let-elseという構文が追加されたりするようです。

非同期周りの話は、次のセッションをチェックしてください。
続いて、
標準ライブラリに新しい機能が追加されたときに、そちらが使われるようにしたり、開発者がエラーメッセージをカスタマイズできたりします。また、Rustの中でもいろいろな派閥が生まれている点について、その依存関係をなくせるように共通化していこうという動きがあるようです。

とくに、

まず、エイリアスです。impl traitをtype aliasで使えるようになったり、非同期関数をtraitなどで定義できるようになる見通しです。
最後に、


以上で、私の
Rustはどんどん使いやすくなっていくそうですので、ぜひ触ってみてください。 ご清聴いただき、ありがとうございました。