Rust言語は採用に強い?その概要と特徴

 2019.11.07  株式会社システムインテグレータ

比較的新しいプログラミング言語として知られるRust言語(以下Rust)。MoFo(Mozilla Foundation)が支援するプログラミング言語として有名ですね。本稿ではこのRustについて、その概要と特徴を解説しています。新しいプログラミング言語学習としてRustが気になっている方は、ぜひ参考にしてください。

Rustとはどんなプログラミング言語か?

Rustは「安全性、速度、並行性」の3つに焦点を合わせた開発が進められているプログラミング言語です。2006年の開発初期はグレイドン・ホアレの個人プロジェクトでしたが、2009年にMoFoが開発に関わり始めてから、Mozilla Researchの公式プロジェクトになっています。2015年に1.0版がリリースされるまで破壊的な仕様変更を繰り返しましたが、1.0版以降は後方互換を保って6週間間隔で定期的に新しいバージョンがリリースされています。

プログラミング言語の中にはC++のようにコンパイル(コンピューター言語への翻訳)を必要とするコンパイル言語(静的プログラミング言語)と、Pythonのようにコンパイルを必要としないスクリプト言語(動的プログラミング言語)の2種類があります。コンパイル言語は、人が理解できるように記述したソースコードを、機械が実行できる形に変換する必要があり、スクリプト言語は変換が不要です。

RustはC++のようなコンパイル言語に分類され、Windowsの場合はexeファイルを作成できます。

安全性

Rustは変数に“寿命”を与えることによって、解放された変数へのアクセスを防ぐことができます。さらに、変数に“所有権”を与えることで、複数の箇所から同時にメモリを書き替えることを防ぎ、どちらもコンパイラによってチェックされています。

速度

ネイティブに近い環境で実行されるプログラミング言語なので、高速に動作するのが特徴です。多数のベンチマークにおいて、自然に記述されたC言語やG++に匹敵する速度を持っています。

並行性

安全性の確保によって所有権を与える仕組みにより、マルチスレッドでも安全に実行できます。

新規CTA

ちなみに株式会社ビズリーチが運営する求人検索エンジンの「スタンバイ」が発表した、プログラミング言語別年収ランキング2018によるとRustはランキング圏外となっており、日本では需要の少ないプログラミング言語となっています。
出典:プログラミング言語別年収中央値を発表、求人検索エンジン「スタンバイ」調べ

ただし、C++の特徴であった高速性を維持したまま、安全なメモリ管理が容易に実現できることから将来性は十分にあります。Rustはブラウザシェアの2位~3位を保持しているとFirefoxで採用されているプログラミング言語なので、これから進展していくことも期待できます。

Rustの特徴

Rustはメモリ管理に特徴があります。変数をコピーする際にいくつか制限がかかり、この制限のうちの1つが“所有権”です。要するに変数をコピーしても、コピーした変数からはアクセスができないため、「変数を不用意にコピーしない」という考え方をコンパイラがサポートしてくれるのです。

C++では解放済みメモリにアクセスしたり、未割当のメモリにアクセスしたりしてしまうことがあります。メモリの管理が完全に開発者に依存しているためです。メモリの安全性が低くなると、システム全体を危険にさらしてしまう可能性があります。そこでRustではメモリの安全性を保障するために、所有権というシステムを導入しています。

具体的に説明しますと、変数へ値を割り当てることを“変数束縛”を呼び、値Xを変数Aに束縛することで、その値Xは変数Aによって所有されていることになります。その後に、変数Aが所有している値Xを別の変数Bに束縛した場合、所有権が自動的に譲渡され、変数Aから値Xを参照することができなくなります。これは、“ムーブセマンティクス”と呼ばれるRustの標準動作です。これによりメモリの競合を避け、メモリの安全性を保証しています。

さらに、高速に動作するアプリケーションを開発するという目的を実現するために、コンパイルを実行する際にチェックを厳重に行い、実行時の負荷を小さくして高速に動作できるよう設計されています。

Rustをインストールする

Rustは他のプログラミング言語に比べてインストールが非常に簡単、というメリットがあります。ここでその方法をご紹介しますので、ぜひ挑戦してみてください。ちなみに環境はWindows 10を想定しています。

最初に、Rustの公式サイトからコンパイラをインストールします。Windows 10で公式サイトにアクセスすると専用ページが表示されるので、「Get Started」をクリックしてコンパイラをダウンロードしましょう。ダウンロードしたインストーラーを起動し、画面の指示に従ってインストールを進めましょう。それだけでコンパイラのインストールが完了します。

次に、実際のプログラムを作成してみましょう。メモ帳アプリを開き「hello_world.rs」を作成します。Rustの拡張子は慣例的に「rs」です。

1 fn main() {
2  println!("Hello, world!");
3 }

Dドライブの直下に「D:/Rust/hello_world」というフォルダを作成し、そこに「hello_world.rs」を保存しましょう。次にコマンドプロンプトを起動し、「D:/Rust/hello_world」に移動してから「hello_world.rs」をコンパイルします。エクスプローラーで確認すると、実行ファイルが作成されているのが確認できます。

さらにコマンドプロンプトで「hello_world.exe」と入力しEnterキーを押下します。画面に「Hello, world!」と入力されていることを確認したら成功です。このように、Rustはインストールが非常に簡単なことから、プログラミング言語をこれから学びたい初心者にもおすすめできる言語です。

Rustは特に安全性に優れたプログラミング言語なので、大規模なシステム開発においても活躍する特徴があります。複数開発者でシステム構築する際も安全性を維持しつつ開発を進められるため、汎用性が高いJavaやC言語よりもセキュアなシステムが完成すると考えられるでしょう。

もちろん、アプリケーション開発にも採用できますし、デバイスドライバやオペレーティングシステムのような低レベルのコードなど他の言語が苦手とする多数のユースケースを得意としているので幅広い開発が可能です。この機会に、Rustについてより深く知ってみてはいかがでしょうか?

新規CTA

RELATED POST関連記事


RECENT POST「コラム」の最新記事


この記事が気に入ったらいいねしよう!