Rust 2024 に向けてRust 2021 を理解しよう@matsu78741
View Slide
2• @matsu7874• [email protected]• オフィス不動産領域のSaaS• 新しいプロダクトをRustで開発しています• 『実践Rustプログラミング入門』共著• TechFeed Official Expert(Rust)自己紹介: @matsu7874
3edition: 後方互換性を保ちつつ破壊的な変更を入れる仕組みrustc 1.60.0 (7737e0b5c 2022-04-04)Edition 2021クレートMainEdition 2015クレートAEdition 2018クレートBEdition 2021クレートCどのeditionで書かれたクレートも参照可能どのeditionで書かれたクレートも最新のコンパイラでコンパイル可能
4• Rust 2015: 安定性• 最初の安定版リリース• Rust 2018: 生産性• dyn Trait構文の導入• extern crateの削除• Rust 2021: 一貫性• TryInto, TryFrom, FromIteratorトレイトのPreludeへの追加• 今はこれが最新• Rust 2024: エンパワーメントの拡大(scaling empowerment)edition: テーマがある
51. 学習しやすくする: Flatten the (learning) curve2. ライブラリ作成者を支援する: Help users help each other3. Rustに貢献しやすくする: Help the Rust project scaleRust2024の注力ポイント: エンパワーメントの拡大(scaling empowerment)とは?
61. より正確な分析を行い、ボイラーテンプレートを減らす2. いくつかの糖衣構文を追加する3. 非同期(async)周りの改善4. dyn Traitを使いやすくする1. 学習しやすくする: Flatten the (learning) curve
7推論が強化されて省略できたり、新しいlet-else構文が追加されたりしますhttps://github.com/rust-lang/rust/pull/93628
非同期周りの話は次のセッションをチェック!https://keens.github.io/pdf/tfcon.pdf
91. 機能のライフサイクルを管理しやすくする• RFC 3240: 標準化時の名前衝突を回避2. より豊富な抽象化3. 開発者体験のカスタム• エラーメッセージとかLinterのカスタマイズとか4. 相互運用性• エコシステム依存を減らすために存在型が拡張される予定2. ライブラリ作成者を支援する: Help users help each other
10より豊富な抽象化: impl Traitのtype aliasや非同期関数をtraitの中で定義できるようになる見通し
111. 文書化し、状態を一覧できるようにする2. オーナーを明確にし、必要な部分で密なコミュニケーションをおこなう3. オープンなプロセスをツールを効率的に使って改善3. Rustに貢献しやすくする: Help the Rust project scale
12ダッシュボードを公開して見やすくしている
131. https://doc.rust-lang.org/edition-guide/editions/index.html2. https://lang-team.rust-lang.org/roadmaps/roadmap-2024.html参考資料と宣伝来週5/19開催実務でRustを使うなかでのTipsを紹介するイベントです。