本セッションの登壇者
セッション動画(YouTubeチャンネル登録もお願いします。)
「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もコンパイルできます。 そして、他のエディションで書かれたクレートを使っていくようなこともできます。
つまり、エディションというのは、文法上の新しい試みを取り入れながらも後方互換性を守るというような仕組みになっています。
このエディションにはそれぞれテーマがあります。
Rust 2015は一番最初にリリースされた安定版です。またRust 2018では、エディションを使って後方互換性を守りながら新しい構文が導入されました。そしてRust 2021では、今までできなかったさまざまな記述方法がPreludeに追加されました。今はRust 2021が最新のエディションです。
次の新しいエディションは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 を学ぶ際、「所有権」という概念を理解するのが難しいと言われることがあります。 たしかにメンタルモデルに変化が必要なので、そういったものは仕方がないです。つまりは、「書きにくい構文は直していこう」ということだそうです。
具体的には、推論が強化されて2回書いている <T: Debug> を書かなくて済むようになったり、let-elseという構文が追加されたりするようです。
非同期周りの話は、次のセッションをチェックしてください。
続いて、「ライブラリ作成者を支援する」について説明していきます。
標準ライブラリに新しい機能が追加されたときに、そちらが使われるようにしたり、開発者がエラーメッセージをカスタマイズできたりします。また、Rustの中でもいろいろな派閥が生まれている点について、その依存関係をなくせるように共通化していこうという動きがあるようです。
とくに、「より豊富な抽象化」という点に最も力が入っているようです。今はまだこちらのようなコードは書けませんが、今後書けるようになります。
まず、エイリアスです。impl traitをtype aliasで使えるようになったり、非同期関数をtraitなどで定義できるようになる見通しです。
最後に、「Rustに貢献しやすくなる」ということで、こちらのことを予定しているようです。
以上で、私の「Rust 2024に向けてRust 2021を理解しよう」についてのLTを終わらせていただきます。
Rustはどんどん使いやすくなっていくそうですので、ぜひ触ってみてください。 ご清聴いただき、ありがとうございました。
【参考リソース】
I look forward to the innovations introduced in Rust 2024 and believe Pokerogue that the language will continue to grow strongly.
Strands NYT - The game grid can vary in size, but the fundamental objective remains the same: create as many words as possible from the given letters.
That is a really helpful bit of knowledge. I'm happy you just gave us this useful dinosaur game knowledge. Please continue to tell us in this way. I appreciate your input.