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