Rustの未来
原文は Matthias Endler により に公開されました。 このブログを購読する
まず当たり前のことから言っておきます。はい、このタイトルは少しセンセーショナルです。そもそも、なぜ私ごときがRustの未来について語る資格があるのか、と思われるかもしれません。確かに私はRustコアチームの一員でもなければ、Rustエコシステムの主要なコントリビューターでもありません。でも、答えはシンプルです。なぜいけないのでしょうか? システムプログラミング全般、そしてとりわけRustの未来について考えるのは、純粋に楽しいことなのです。
出典:イラスト提供 FreePik.com
コアチームが掲げた短期的な目標について聞いたことがあるかもしれません。コンパイル時間の短縮や、より緩やかな学習曲線などが思い浮かびます。この記事で扱うのは、そういった話ではありません。そうではなく、今から5年から10年先にRustが輝く可能性のある、もう少しエキゾチックな分野を探ってみたいと思います。大きく羽ばたくためには、地に足をつけることと、翼を広げること、その両方が必要なのですという根と翼の言葉もあります。
データサイエンス
現在、データサイエンスで最も人気のある言語は、Python、Java、R、そしてC++です。

プロトタイプはPythonやRのような動的型付け言語で書かれることが多い一方で、アルゴリズムがプロダクション水準の品質に達すると、スケーラビリティのためにC++のような高速な言語で書き直されることが多いことがわかっています。近い将来、RustがC++にとって健全な競争相手になることは十分に考えられます。Rust製の機械学習ライブラリであるleafのベンチマークは、すでに目を見張るほど印象的な結果を示しています。
大作ゲーム
ゲームは、Rustが活躍しそうなもう一つの分野です。ゲームスタジオにとって、あまり手間をかけずに複数のプラットフォームに対応できることは、経済的に大きな魅力があります。Cargoとrustupがあればクロスコンパイルは簡単です。モダンなライブラリが、大規模なゲーム開発におけるツール面の隙間を徐々に埋めつつあります。Vulkan 3DグラフィックスAPIに対するRustのサポートは、すでに最高クラスかもしれません。しかし、真のキラー機能は、安全性とパフォーマンスというユニークな組み合わせにあります。100万人のプレイヤーに向けてゲームをリリースし、彼らがお金を払ってくれるのであれば、クラッシュしないことをしっかり保証したいですよね……そう思いませんか?
とはいえ、初のAAA Rustゲームの登場はまだまだ先のことかもしれません。こちらは2017年時点でのBlizzardのRustに対する見解です。
システムエンジニアリング
もしかすると、いずれはRustコアの形式的検証も実現するかもしれません。RustBeltのようなプロジェクトが、宇宙産業をはじめとする安全性が重視される分野で新たな可能性を切り開くでしょう。Rust(あるいはその精神的な後継言語のひとつ)で制御された宇宙船が火星に安全に着陸する姿を想像してみてください。素敵だと思いませんか? SpaceXはすでにRustの実験を始めているのでしょうか……。
他言語との連携
まだ触れていない分野は他にもたくさんあります。例えば、金融ソフトウェアや医療用ソフトウェア、あるいは科学計算など、挙げればきりがありません。いずれの場合でも、Rustは適任かもしれません。現時点で最大の参入障壁となっているのは、おそらく膨大なレガシーコードの存在です。多くの業界では、CobolやC、Fortranで書かれた大規模なコードベースが維持されており、簡単に書き換えることはできません。
幸いなことに、Rustは他の言語と非常にうまく連携できることが証明されています。一つにはCとの互換性が高いこと、もう一つにはランタイムやガベージコレクタが存在しないことが理由です。典型的なパターンは、アプリケーションの中でも安全性やパフォーマンスに対する要求が特に厳しい中核部分だけをRustで最適化し、残りはそのままにしておくというものです。この共生関係は、長い目で見ればさらに強まっていくと私は考えています。Corrodeのように、Cのコードを自動的にRustへ変換しようとする野心的なプロジェクトさえ存在します。
まとめ
総じて、安全性やパフォーマンス、あるいはマシンに対する完全な制御が不可欠な分野において、Rustには大きな可能性があると見ています。RustやCrystalのような言語があれば、ある種のエラーは過去のものとなります。nullポインタも、セグメンテーションフォルトも、メモリリークも、データ競合もありません。将来の世代のプログラマーたちが、そうしたことを当たり前のものとして受け入れるようになるのは、心強いことだと感じています。
記事をランダムに読む
コメント
ログインしてコメントする