TechFeed Conference 2022 Pick up

Rust 2024に向けてRust 2021を理解しよう~TechFeed Conference 2022講演より

本記事は、2022年5月に開催されたTechFeed Conference 2022のセッション書き起こし記事「Rust 2024に向けてRust 2021を理解しよう(matsu7874⁠⁠ — TechFeed Conference 2022講演より」を転載したものです。オリジナルはTechFeedをご覧ください。

「Rust 2024に向けて Rust 2021を理解しよう」というタイトルで発表させていただきます。

2022年4月にRust 2024のロードマップが公開されました。いま、 Rustで何ができていなくて、今後何ができるようになるのかについて紹介していきたいと思います。

LTの感想などをハッシュタグ「#tfcon」を付けてTwitterでつぶやいていただけると嬉しいです。

自己紹介です。@matsu7874というアカウントでTwitterをやっております。今はestieという会社でソフトウェアエンジニアをしています。 あとは『実践 Rustプログラミング入門』⁠秀和システム)の共著者で、TechFeed Official Expert Rustをやらせていただいております。

Rustの”エディション”と”テーマ”

まず、Rustにはエディション(edition)という概念があります。 これは後方互換性を保ちつつ、キーワードを追加したり、文法の解釈を変えるような破壊的な変更を導入するための仕組みです。

エディションは、3年に1回追加が行われます。最新のコンパイラではもちろん最新のエディションのRustがコンパイルできます。また、古いエディションであるRust 2015 Rust 2018もコンパイルできます。 そして、他のエディションで書かれたクレートを使っていくようなこともできます。

つまり、エディションというのは、文法上の新しい試みを取り入れながらも後方互換性を守るというような仕組みになっています。

edition: 新しい試みを取り入れながらも後方互換性を守る

このエディションにはそれぞれテーマがあります。

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

edition: テーマがある

次の新しいエディションは2024年に登場するということで、どのようなことをしていきたいか? という考えが公開されました。Rust 2024のテーマは「エンパワーメントの拡大(scaling empowerment⁠⁠」です。

Rust 2024でめざす”エンパワーメントの拡大”

エンパワーメントの拡大というのは、具体的には以下の 3 つを指します。

  1. 学習しやすくする(Flatten the learning curve)
  2. ライブラリ作成者を支援する(Help users help each other)
  3. Rust に貢献しやすくする(Help the Rust project scale)

まず、ひとつめの「学習しやすくする」について説明していきます。

Rust を学ぶ際、⁠所有権」という概念を理解するのが難しいと言われることがあります。 たしかにメンタルモデルに変化が必要なので、そういったものは仕方がないです。つまりは、⁠書きにくい構文は直していこう」ということだそうです。

学習しやすくする:Flatten the (learning) curve

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

推論が強化されて省略できたり、新しいlet-else構文が追加されたりする

非同期周りの話は、次のセッションをチェックしてください。

続いて、⁠ライブラリ作成者を支援する」について説明していきます。

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

ライブラリ作成者を支援する:Help users help each other

とくに、⁠より豊富な抽象化」という点に最も力が入っているようです。今はまだこちらのようなコードは書けませんが、今後書けるようになります。

より豊富な抽象化:impl traitのtype aliasや非同期関数をtraitの中で定義できるように

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

最後に、⁠Rustに貢献しやすくなる」ということで、こちらのことを予定しているようです。

Rust に貢献しやすくする:Help the Rust project scale
ダッシュボードを公開

以上で、私の「Rust 2024に向けてRust 2021を理解しよう」についてのLTを終わらせていただきます。

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

【参考リソース】

おすすめ記事

記事・ニュース一覧