Rust
Rust の名前の由来
植物に赤サビ病をもたらすサビ菌類 (Rust fungus) はサバイバル能力に秀でていて、その形態はなんと 5 つもあります。 自身のプログラミング言語を並列・分散指向で耐障害性に優れるものにしたかったという同氏は、サビ菌類のしぶとさに注目したようです。
Rust が robust (頑丈) や trust (信頼) の部分文字列であることも、その名前を選択する後押しとなったよう
複雑なランタイムを持たない (ガベージコレクションなど)
その気になればオペレーティングシステム無しで実行できるソフトウェアも作れる
他の言語に組み込むのにも理想的
トップクラスのパフォーマンス
ハイパフォーマンスなアプリケーションやシステムソフトウェアの開発に適する
パフォーマンスに関わる特徴
マシンコードへのコンパイル
ゼロコスト抽象化とはプログラム言語が持つ抽象化のしくみが実行時のコストなしに動作することです。 ここでいう実行時のコストとは、実行速度やメモリ使用量などを指します。 Rust はゼロコスト抽象化を中心的な設計原則として扱っており、抽象化機構を使っても全体的な実行速度の低下やメモリ使用量の増加などを引き起こさないよう、コンパイラとライブラリの設計に細心の注意が払われています。 GC を行わない軽量なランタイム
安全なシステムプログラミング言語
安全性の重視 : メモリ安全性や並列実行時のデータ競合の検出 Rust のメモリ安全性については、Cyclone という安全性を重視した C の方言のリージョンにもとづくメモリ管理手法から多大な影響を受けています。 生産性を高めるモダンな機能
代数的データ型とパターンマッチ、型クラスによる多層関数、コンパイラによる型推論などの便利な機能
シングルバイナリ、 クロスコンパイル
Rust は x86 系 Linux を含む一部のターゲットプラットフォームで外部ライブラリとの静的リンクもサポートしていますので、そのようにしてビルドしたバイナリなら Alpine Linux でも実行できます。
他言語との連携が容易
導入事例
ドワンゴによって開発され、オープンソースソフトウェア (OSS) として公開された Frugalos : Rust で実装された分散オブジェクトストレージ Amazon Web Services (AWS) によって開発、OSS として公開された Firecracker : サーバレスコンピューティングのためのセキュアなマイクロ仮想マシン (microVM) 並列 CSS エンジン Stylo : 85,000 行の Rust コード (従来は 160,000 行の C++ コード)