Rust
概要

従来、オペレーティングシステム(OS)のようなハードウェア制御を伴う分野や、極めて高速な処理が要求される分野ではC言語やC++言語が用いられることが多かったが、データを保管するメモリ領域の管理をプログラマが明示的に行わなければならず、しばしば深刻な欠陥の原因となってきた。
Rustはこのような用途で十分な性能を確保しつつ、メモリ安全性の問題を言語仕様の段階で防ぐことを重視している。実行時に確保するメモリ領域について「所有権」(ownership)と「借用」(borrowing)と呼ばれる仕組みを導入し、プログラムの実行前にメモリの使用ルールを検証することができる。
これにより、解放済みメモリへのアクセスや二重解放、並行処理(マルチスレッド)におけるデータ競合といったメモリ使用にまつわる不具合をコンパイル時に検出して訂正することができる。従来のメモリ安全性が高い言語で用いられてきたガベージコレクション機構を使わないため、実行時のオーバーヘッドが小さく、リアルタイム性や性能が重視される分野でも利用しやすい。
近年、いわゆるスクリプト言語で発達した開発環境の利便性も意識しており、開発者の生産性を高めるための強力なエコシステムを提供している。「クレート」(crate)の名称で提供されるライブラリや、パッケージマネージャ兼ビルドツールの「Cargo」が公式の開発環境として整備されている。依存関係の管理やビルド、テストの自動化が容易で、開発効率の高さにも定評がある。
RustはもともとWebブラウザ「Firefox」のレンダリングエンジンを開発するために生み出された言語で、安全性と性能を同時に求められる用途に適している。OSカーネルからWebAssemblyを用いたWebアプリケーションまで幅広い用途で利用可能であり、近年ではC++などで書かれた既存システムの一部をRustで置き換える取り組みも見られる。オープンソースコミュニティによる継続的な開発と仕様改善が進められ、実用的なシステム開発言語として位置付けられている。