2019年12月05日 10時05分 公開
特集/連載

AWSやMicrosoftも支援する「最も愛される言語」プログラミング言語「Rust」が「C」「C++」の後継になるこれだけの根拠

Amazon Web Services(AWS)がプログラミング言語「Rust」をシステム開発言語として採用し、支援に乗り出した。MicrosoftもRustを「C」「C++」の代替言語と見なすことを表明し、注目が集まっている。

[Darryl K. Taft,TechTarget]

 クラウドベンダー大手のAmazon Web Services(以下、AWS)が、プログラミング言語「Rust」のスポンサーになった。Rustは2015年に初の安定版が公開されて以来、「C++」の有力な代替として台頭している。「高性能で安定したアプリケーションを開発できる」「プログラマーの生産性を高められる」と評判だ。Google、Microsoft、Mozilla、Yelp、Dropbox、Cloudflare、AWSといった企業がシステム開発言語としてRustを採用している。

高い評価を集める理由

 プログラミング言語「Ecstasy」を開発している新興企業xqiz.itのCEOであるキャメロン・パーディー氏は、Rustについて「長い年月の中で初めて登場した“真のC++の代替”と言える。システム開発に適した仕組みを持ち、C++よりもはるかによく考えられた言語だ」と評価する。システム開発業界を対象としたアナリスト企業RedMonkでアナリストを務めるジェームズ・ガバナー氏も、「Rustはシステム開発のための言語として着実に広がっている」と話す。

 AWSでは、クラウドサービスの開発においてRustの使用が拡大している。イベント駆動型コード実行サービス「AWS Lambda」、仮想マシンサービス「Amazon Elastic Compute Cloud」(Amazon EC2)、ストレージサービス「Amazon Simple Storage Service」(Amazon S3)などのサービスで、パフォーマンスを重視するコンポーネントにRustを使っているという。AWSの仮想化技術「Firecracker」もRustを使って開発されている。

 今回のAWSによるRustのスポンサーシップは、Rustプロジェクトで利用するインフラの支援を含む。AWSのブログによると、同社は上流工程テスト、性能テスト、CI/CD(継続的インテグレーション/継続的デリバリー)、中間生成物の開発において、AWSのストレージを利用できるプロモーション用クレジットをRustプロジェクトに提供するという。AWSは同様のプロモーションクレジットを、Java開発環境「AdoptOpenJDK」やプログラミング言語「Julia」などのオープンソースプロジェクトにも提供している。

 「AWSは、『オープンソースソフトウェア(OSS)の恩恵を受けていながら、OSSを作り出すことも、コミュニティーを支援することもしていない』という批判から免れるチャンスを探っているのだろう」。調査企業Forrester Researchのアナリストであるジェフリー・ハモンド氏はそう推測する。「Java開発環境『Amazon Corretto』やFirecrackerなどのプロジェクト、そして今回のようなスポンサーシッププロジェクトは、全てそうした見方に対抗することを目的としている」とハモンド氏は付け加える。

 AWSによると、Rustプロジェクトは以下の目的でAWSを利用する。

  • コンパイラ、ライブラリ、ツール、ソースコードといったリリースの成果物(アーティファクト)の保存
  • Rustのレグレッションテスト(システムの整合性を確認するテスト)ツール「Crater」の実行
  • Rustのパッケージ(拡張機能)管理Webサイト「crates.io」に登録されたパッケージのドキュメントをホスティングするWebサイト「Docs.rs」の運用

Microsoftが公式に「C」「C++」の代替とみなすことを表明

ITmedia マーケティング新着記事

news105.jpg

ITツールの利用効果に対する実感に世代間ギャップ――Dropbox Japan調査
国内企業における創造性とITツール利用に関する実態調査です。

news035.jpg

エードット×BIRDMAN デジタルクリエイティブ界の強力タッグが目指す「広告のいらない世界」
プロデュースカンパニーとして急成長中のエードットが総合クリエイティブプロダクション...

news092.jpg

10代女子に聞いたお年玉の使い道、「貯金」「推し活」が上位に――バイドゥ調べ
イマドキの女子はもらったお年玉をどう使っているのでしょうか。