RustはC言語やC++に変わる新世代のプログラミング言語です。Mozilla社によって開発されており同社ブラウザの『Firefox』でも使用されております。この記事ではRustを理解するために初心者でも分かる歴史、特徴などの基礎知識などを解説していきます。
Rustとは「安全性」「速度」「並行性」の3点に力を注ぐマルチパラダイムのプログラミング言語です。C言語やC++に変わる新世代のプログラミング言語を目指して2010年に誕生しました。C言語を参考に開発されたということもあり、基本的な制御文はC言語に似ております。『Stack Overflow Developer Survey』では2016~2020年にかけて「最も愛されているプログラミング言語」というランキングにおいて1位を獲得しております。Rustの特徴は「非常に高速でメモリ効率が高い」「信頼性が高い」「生産性が高い」などが挙げられます。
マルチパラダイムプログラミング言語とは複数のプログラミングパラダイムに対応するプログラミング言語の総称です。マルチパラダイムプログラミング言語の設計目標は、問題解決に当たって最良の道具になることとされております。代表的なマルチパラダイムプログラミング言語としてJavaScript、C++、C#などが挙げられます。
マルチパラダイムプログラミング言語の基礎知識や種類を解説している記事はこちら>>
Rustの読み方は『ラスト』です。名前の由来はチームメンバーの多くが自転車に乗っていることから自転車のチェーンリングに因んで付けられました。というのもチェーンリングは錆びていて非常に視覚的に特徴的であり、見栄えが良いと言うことを認識していたからだそうです。Rustを直訳すると『錆』という意味になりますが、まさか自転車のチェーンの錆から連想されていたとは面白いですね。
Rustの誕生の歴史は2006年から始まります。当時『Mozilla社』で働いていたグレイドン・ホアレ氏がC言語やC++に変わる新世代のプログラミング言語を開発したいという願いから同氏の個人プロジェクトとしてスタートします。そして2010年7月に初めて「Mozilla Summit 2010」にて世にリリースされました。初めて安定版が発表されたのは2015年のことです。「Rust1.0」はここから始まりました。
安定版が発表された翌年以降『Stack Overflow Developer Survey』では2016~2020年にかけて「最も愛されているプログラミング言語」というランキングにおいて1位を獲得しております。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2006年 | グレイドン・ホアレ氏によって個人プロジェクト開始 |
2010年 | 「Mozilla Summit 2010」にて公開 |
2015年 | 「Rust1.0」リリース |
2016年〜2020年 | 「最も愛されているプログラミング言語」というランキングにおいて1位 |
2021年 | Rust Foundation設立 |
コンパイラ型言語とは、人間が書いたプログラム(ソースコード)をコンピュータが理解できる形式(機械語)に変換するプログラム言語のことです。コンパイラという言葉は英語の『compile』を表し、『編集する』を意味します。コンパイラ言語の特徴は『処理速度が早い』ということが挙げられます。対比されるインタプリタ言語と比べても実行時の性能が高いと言われております。一方でコンパイラ言語には『修正が容易では無い』というデメリットがあります。代表的なコンパイラ言語としてJava、C言語、C++などが挙げられます。
コンパイラ言語のメリットや種類を解説している記事はこちら>>
Rustの特徴を見ていきましょう。
Rustは非常に高速でメモリ効率が高いという特徴があります。速度に関してはC言語やC++に匹敵する速度を持っています。またメモリ効率はRust独自のメモリ管理戦略によって高い効率性を実現しております。
Rustは信頼性が高いという特徴があります。メモリ安全性とスレッドセーフ性を保証しており、コンパイル時に多くのクラスのバグを排除できます。またRustはnull安全な言語であることが公式に記述されており、安全性と開発の生産性を高めるポテンシャルを持った言語となっております。
Rustは生産性が高いという特徴があります。優れたドキュメント、便利なエラーメッセージを備えた使いやすいコンパイラを用意しております。他にも統合されたパッケージマネージャーとビルドツール、オートコンプリートとタイプ検査を備えたスマートマルチエディターサポートなど生産性を向上させる様々なツールを用意しております。
Rustの基本的な文法を見ていきましょう。
Rustの変数宣言では『let』を使用します。また変更可能な変数を宣言する場合には『mut』を使用します。
変数宣言 | 実行方法 |
let | letの後に、変数名を記述する |
mut | 変更可能な変数宣言の際に使用 |
Rustではデータ型で使用される基本的な種類は以下の通りです。
変数型 | 概要 |
整数型 | i8, u8, i16, u16, i32, u32, i64, u64, isize, usize |
浮動小数点型 | f32, f64 |
ブーリアン型 | bool |
文字列型 | String / &str |
複合型 | (500, 6.4, true), () はユニット. |
配列型 | [1,2,3,4,5], [3;5] = [3,3,3,3,3] |
Rustでは演算子で使用される基本的な種類は以下の通りです。
演算子の種類 | 概要 |
bit演算 | AND演算 OR演算 右シフト 左シフト |
加算乗除 | 加算 減算 乗算 除算 |
比較演算 | 二つの式や値の比較を行い、結果を真偽値で返す |
論理演算子 | 真偽値に対して演算を行う |
制御文ではif/else文、match文、while文を覚えておく必要があります。
Rustが影響を受けたプログラミング言語を見ていきましょう。
C言語とはAT&Tベル研究所のデニス・リッチー氏が中心となって開発し1972年に誕生したプログラミング言語の一種です。汎用性の高いプログラミング言語としてソフトウェアの開発からコンピューター機器、自動車などのハードウェア製品の開発にも採用されております。また手続き型言語であり、構造化プログラムに適しているという特徴があります。C言語は現在活躍する様々なプログラミング言語のモデルとなっており中でも代表的なのがJavaやC++、C#などです。日本の大学や専門学校の講義でもプログラムの基礎を学ぶための授業としてC言語が採用されることが多いです。
C++(シープラスプラス)とはC言語をベースに機能を拡張したオブジェクト指向のプログラミング言語です。オブジェクト指向の要素だけでなく手続き型プログラミング、データ抽出、ジェネリックプログラミングなどの複数の要素を兼ね備えるマルチパラダイムプログラミング言語となっております。C++にはいくつかの種類が存在しており代表的なものとして「Borland C++(ボーランドシープラスプラス)」「Visual C++(ビジュアルシープラスプラス)」などが挙げられます。主な用途としては組み込み系システム、WEBアプリケーション、業務システムなどの開発が中心となっております。中でも組み込み系システムの開発において対象の機器が必要となる機能を実現するために正しく動作及び制御させるために多くの場面で使用されております。
Rustを理解するために初心者でも分かる歴史、特徴などの基礎知識を簡単に解説させていただきました。Rustを一言で表すと『C言語やC++に変わる新世代のプログラミング言語』です。特徴として「非常に高速でメモリ効率が高い」「信頼性が高い」「生産性が高い」などが挙げられます。Rustについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。