Rustについて
はじめに
最近Rustにハマってるので触りながら学習した内容をまとめて行くことにしました。
すごく簡単に書いたり書かなかったりとむらはありますが、布教活動として書きます。
Wiki
開発者: Graydon Hoare (Software developer at Mozilla)
2006年にパーソナルプロジェクトとして開発されて、2009年にMozillaからスポンサーを受け、2014年1月にファーストリリースされた。
SML, OCaml, C++, Cyclone, Haskell, Erlangに影響を受けている。
性能、メモリ安全性、安全な並行性を目指して設計されたマルチパラダイムのプログラミング言語である。C言語、C++に代わるシステムプログラミング言語を目指して開発されてる。
アドバンテージ
パフォーマンス
Rustは非常に高速でメモリ効率が高くランタイムやガベージコレクタがないため、パフォーマンス重視のサービスを実装できますし、組込み機器上で実行したり他の言語との調和も簡単にできます。
信頼性
Rustの豊かな型システムと所有権モデルによりメモリ安全性とスレッド安全性が保証されます。さらに様々な種類のバグをコンパイル時に排除することが可能です。
生産性
Rustには優れたドキュメント、有用なエラーメッセージを備えた使いやすいコンパイラ、および統合されたパッケージマネージャとビルドツール、多数のエディタに対応するスマートな自動補完と型検査機能、自動フォーマッタといった一流のツール群が数多く揃っています。
引用
どんなことで使われてるか
- コマンドライン
- WebAssembly
- ネットーワーク
- 組込み
- Web Server
- Game Engine
- などなど
特徴
- マルチパラダイムプログラミング言語
- ゼロコスト抽象化
- メモリの自動管理 (ガベージコレクションとは別)
- メモリの安全性
- オーナーシップ(所有権)システム
- ムーブセマンティクス
- 参照と借用
- ライフタイム
- etc
他にも色々Rust特有の特徴がたくさんありますが、代表的な特徴を挙げてます。今後それぞれの特徴について解説してゆきます。
最近の導入企業
おわりに
Rustの導入ところは箇所箇所で行われている印象が強いです。
よくパフォーマンスの題材として話に出されますが、個人的には保守性の高さがあり、それによってのビジネスロジック追加・変更への安全性と開発速度が上がることがこの言語を好きになった理由です。
Discussion