開発ツール

プログラミング言語「Rust」の新ロードマップ--5つの主な新機能と改良点

プログラミング言語「Rust」の今後予定されている新機能と改良点をとりまとめた2019年のロードマップが公開された。

 プログラミング言語「Rust」は、「C++」のような高性能言語に代わる確かな選択肢として、ゆっくりだが着実に名を上げている。

 Rustの中核チームはこのほど、今後予定している同言語の新機能と改良点をとりまとめた2019年のロードマップを公開した

 Rustの中核チームはある投稿で、「2019年は、Rustプロジェクトにとって活性化と成熟の年になる」と述べ、さらに、ガバナンスの向上、長年要求されてきた機能の作り込み、そして同言語とツールの品質向上を中心に取り組むと付け加えている。

 Rustは、「C」やC++の高い性能を必要としつつ、メモリを手動で管理する煩わしさから解放されたいプログラマーに人気がある。Rustの担当チームはこれまでも、Rustについて、「Ruby、『Haskell』『Scala』とミックスしたようなもの。クロージャーやイテレーターなどの関数的機能のほか、『Haskell』に似たリッチな型システムが備わっている」と表現している。

 Rustは需要面でみると比較的ニッチな言語だが、ウェブ用ソフトウェアの作成、埋め込みコンピューター、配信サービス、コマンドラインを含む幅広い用途がある。また、給与の高い職務と関連があったり、2019年の「Stack Overflow Developer Survey」で最も給与が高いプログラミング全体で8位にランキングされていたりする。

2019年にRustに追加予定の5つの新機能と改良点

1. 開発者向けツールの改良

 開発者向けツールは、「Rust Language Server(RLS)」の見直しに伴い、改良が必要だ。RLSを使用することで、Rust関連機能を広範な統合開発環境(IDE)によってサポートできるようになり、開発者はこれらのIDEを使ってコードの作成と編集を実行する。

 既存のRLSによって、IDEが「goto定義」、シンボル検索、再フォーマット、コード補完などの機能をサポートできるようになる一方、Rustの記述と編集時に「真のファーストクラスIDEエクスペリエンス」を実現する取り組みが進行中だ。

 この取り組みの実現に注力するプロジェクトが「RLS 2.0」だ。このプロジェクトは、RLSを「rustc」コンパイラーとより緊密に統合する取り組みである。RLS 2.0は、rustcコンパイラー向けの新しいフロントエンドのプロトタイプを構築する計画になっており、Rust開発者が「われわれが本当に必要としているIDEエクスペリエンスを得られるようにする」ことを目的としていると、公式ロードマップに記されている。

2. コードコンパイルの高速化

 Rustのコードを実行できるようにするにはコンパイルによって、コンピューターが実行可能な命令に変換する必要がある。

 Rustコードのコンパイル速度の向上は、Rustの中核チームの長年の目標になってきたが、2019年は「『中核的な強度』を引き上げる」ことをコンパイラーの目標に掲げ、rawコンパイル時間の短縮とともに、より優れたコード生成を実現する。

 これらの改良は、一連のプロジェクトによって可能になっている。中核的な取り組みは、rustcコンパイラーの並列処理であり、これにより、コンパイルを高速化するとともに、IDEの応答性を向上させる。

 もう1つのプロジェクトは、マルチステップ変換プロセスにおけるステージの1つを最適化するというもの。これにより、Rustのコードを低レベルの機械命令に変換する際、中間レベルIR(MIR)ステージで新たな最適化を実行する。これにより、生成されるコードの質が向上するだけでなく、LLVM IRステージの間に次のステージのコンパイルプロセスを完了するまでの所要時間を短縮できる可能性がある。

3.「Async/await」などの新たな言語機能

 2018年のロードマップから持ち越しとなったこの機能は、非同期的に実行される効率的なコードを開発者がさらに容易に記述できるようにする。

 一例として、結果を返すまでの時間が確定できない関数を呼び出す場合を考えてみる。その関数が結果を返すまで待つ間、他のあらゆる命令が実行されないよう遮断するのではない。代わりに、asyncおよびawaitキーワードによって、Rustが現在実行中の機能を一時停止したり、結果が返されるまで他の命令を実行したりする方法が提供される。結果が返されたりした時点で、Rustは中断した場所から実行を再開できる。

 この機能は現在、こちらのサイトの手順に従ってプレビュー版を試すことができる。また、このサイトでは、async/awaitの仕組みについてより詳しい情報とサンプルコードが利用できる。

 そのほか、2019年内の導入が新たに見込まれているのは、ジェネリック関連型constジェネリックの2つの言語機能となっている。

4.「Cargo」向けの新機能

 Rustのビルドシステム兼パッケージマネージャーであるCargoに、改良されたクロスコンパイルサポート(コンパイラーが現在実行中のコードを除くコードを、プラットフォーム上で実行できるようにコンパイルする機能)、カスタムコマンドのサポート、カスタムレジストリとオフラインモードの追加など、多くの新機能が加わる予定だ。

5. セキュリティの強化

 セキュリティワーキンググループが、Rustに対するセキュリティ関連のアップデートをタイムリーな方法で提供する方法を中心に検討中であり、ほかにも、コード認証の強化、安全でないコードの使用削減、標準ライブラリの認証の改良にも取り組んでいる。

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

「開発ツール」で読まれている記事

TechRepublic Japanで人気の記事

編集部オススメ

トレンドまるわかり![PR]

財務・経理
人事・労務
マーケ・営業
購買・調達
生産・製造
データ分析
コミュニケーション
通信・通話
文書・コンテンツ
PC・モバイル
新興技術
ITインフラ
クラウドサービス
OS・ミドルウェア
開発
開発ツール
開発支援
ノンプログラミング開発ツール
データベース
運用
セキュリティ

ホワイトペーパーランキング

  1. 5分でわかる、レポート作成の心得!成果至上主義のせっかちな上司も納得のレポートとは
  2. ノートPCは従来ながらの選び方ではダメ!新しい働き方にも対応する失敗しない選び方を徹底解説
  3. 問題だらけの現場指導を効率化!「人によって教え方が違う」を解消するためのマニュアル整備
  4. 緊急事態宣言解除後の利用率は低下 調査結果に見る「テレワーク」定着を阻む課題とその対応策
  5. たしか、あのデータは、こっちのアプリにあったはず…--業務改善のためのアプリ導入がストレスの原因に?

Follow TechRepublic Japan

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]