Rustコアチームは先日,Rust言語の今後1年間のあるべき場所の定義を目的としたロードマップ案を決定した。Rustユーザを対象として2016年に実施した調査の結果を一部取り入れるとともに,速度と信頼性を犠牲にすることなく,Rustの生産性を向上することを最優先課題としている。
具体的に2016年の調査で明らかになったのは,学習曲線,ライブラリやIDEの欠如,言語としての“成熟度”に対する懸念,コンパイラのパフォーマンスといった,Rustを採用する上での障害の存在だ。提案された2017年のロードマップではこれらすべてに対して,改善のための詳細なアプローチが提示されている。
学習曲線
Rustの学習曲線については2016年調査の回答者の4分の1が言及しており,所有権の概念に基づいたメモリ管理モデルとして,Rustがいまだメインストリームになり得ない理由の一部となっている。Rustチームが実施を計画している戦略は,ドキュメント,言語のエラー処理と機能,ツーリングの改善だ。
ツーリング
ツーリングに関してRustチームが考えているのは,エディット-コンパイル-デバッグサイクルとIDEの改善だ。エディット-コンパイル-デバッグサイクルについては,すでにいくつかの作業が行なわれている。具体的には,シンタックスシュガー解析へのMIR(Mid-level IR)の導入,型チェックと変換に関する表現の簡易化,アルファリリースに到達したばかりのインクリメンタルコンパイルなどだ。さらにチームは,“実行速度の遅過ぎる”デバッグビルドと“ビルド速度の遅過ぎる”リリースビルドという,現在のバランスの改善にも取り組んでいる。
Rustのエコシステム
生産性向上に向けたもうひとつの重点が,Rustのライブラリエコシステムの充実だ。これには2つの面がある — ひとつは,品質メトリクスを示すバッチや継続的インテグレーションのサポート,選択したクレートのAPIレビューの実施など,高品質なクレート(crate)を見つける手段の提供であり,もうひとつは,サーバ用のクレートやコンカレント/非同期/並列処理の開発といった重要なタスクに対して,1.0レベルのクレートを提供できるように,Rustのエコシステムが成長することの必要性の認識である。
相互運用性
実運用でRustを使用する場合,既存のビルドシステムへの統合や,C++コードとの相互運用が求められることが少なくない。この2つの要求に対してRustチームが目指すのは,既存の開発構造に対してRustを容易に統合可能にすることだ。特にC++ライブラリを使用する場合に,C++で使用する場合よりも極端に困難であってはならない。
ここにあげたのは,2017年に向けて提案されているRustのロードマップの概要である。ロードマップの詳細,欠点や代替案などに関する議論,未解決の問題についてはRFCを参照してほしい。
この記事を評価
- 編集者評
- 編集長アクション