Rust 1.56.0最新バージョンがリリース!将来性がC超の理由
thumb_rust1.56.0_01
Rust 1.56.0最新バージョンがリリース!将来性がC超の理由
アンドエンジニア編集部
2021.12.06
この記事でわかること
「Rust 1.56.0」は注目のマルチパラダイム・プログラミング言語「Rust」の最新バージョンである。
「Rust」言語は「安全性」「速度」「並行性」の3つを特徴とし、3大クラウドが採用したことで注目度が高まっている。
「Rust」言語は初心者には難解の言語と言われるが、まだ利用人口が少ない内に習得すると強い武器になる。

「Rust 1.56.0」とは

img_rust1.56.0_01

2021年10月21日に「Rustチーム」から、プログラム言語「Rust」の最新バージョン「1.56.0」と「Rust 2021 Edition」が発表されました。

さて、この記事を読まれているエンジニアの方で、「Rust」をご存知の方はそんなに多くはないでしょう。「Rust」は日本ではまだマイナーなプログラム言語です。そんな「Rust」を採り上げるのには理由があります。それは、「Rust」はさまざまな可能性を秘めた優れたプログラム言語だからです。

この記事では、「Rust」の特徴やメリット、デメリット、今後の可能性について紹介をしていきます。記事をご覧になられたエンジニアの皆さんもぜひ関心を持ってみてください。

【参照】:Announcing Rust 1.56.0 and Rust2021

Rustとは

「Rust」(ラスト)はマルチパラダイムのプログラミング言語と呼ばれ、「安全性」「速度」「並行性」の3つを特徴としています。C言語を参考にしながら、C++に代わる新世代プログラミング言語を目指しています。基本的な制御文はC言語と似ているため、C言語を学んだ人であれば、親しみやすいでしょう。

「Rust」はボランティア組織によって運営、開発されていますが、多くの著名な企業から支援を受けています。

ちなみに「Rust」は英語で錆(さび)と訳されます。そのため「Rust」の公式サイトを日本語に翻訳すると、随所に「さび」と表示されます。

【参照】:Rust公式サイト

Rustの歴史

「Rust」誕生の歴史は2006年に遡ります。ブラウザのFirefoxで知られる『Mozilla社』に勤務していたグレイドン・ホアレ氏が新世代プログラミング言語開発に賭ける思いから、「Rust」開発は個人的プロジェクトとしてスタートしました。 「Rust」は2010年7月に「Mozilla Summit 2010」にて発表されましたが、最初の安定版の発表は2015年です。これが「Rust 1.0」の始まりです。

Rustの利用例

「Rust」がMozillaのFirefoxエンジンで使われている事は比較的よく知られていますが、MicrosoftはWindowsの開発に「Rust」を採用しています。Google社はAndroid OSの開発に「Rust」を採用すると公表しました。

AWSは「AWS SDK for Rust」のアルファリリースを行い、AWSの7つのサービスにこれを提供していく計画です。このように、ビッグネームが次々と「Rust」の採用に踏み切った意味は大きいと考えられます。

「Rust 1.56.0」リリースの意味

 「Rust 1.56.0」のリリース記事には、「下位互換性のリスクをもたらす可能性のあるオプトイン変更メカニズム..云々」の説明が記されていますが、「Rust」を知らない人にとっては非常に難解に文章です。

まして、日本語のリリース記事は英文の翻訳であるため、なおさら分かりにくくなっています。ここでは、できるだけ分かりやすく、このリリース文の意味を解読してみます。

「Rust」は「停滞なき安定性」をポリシーとしています。また「Rust」には、「安定版で一度リリースした機能は、以降のすべてのリリース版においても、その機能のサポートを約束する」というルールがあります。これは「Rust」を利用するユーザーにとって非常に重要なことです。

「以前使えた機能が使えなくなる」、「新たな機能が下位バージョンでは使えない」といった問題は、ソフトウェアの世界ではよくあることですが、「Rust」はこうした事態の発生を可能な限り無くそうと努めています。

たとえば、2018年版エディションと2021年版エディションが共存するシステム環境が存在した場合に、それぞれの機能に違いがあるとシステム全体が機能しませんが、「Rust」ではこうしたトラブルを防ぐために最大限の注意を払っているようです。

下位互換性のリスクを最小化し、安定性を高めたのが2021年版エディションであり、そのためのバージョンアップが「Rust 1.56.0」であると理解すればよいでしょう。

Rustの特徴とメリット

img_rust1.56.0_02

ここまでの説明で、「Rust」に興味が湧いたでしょうか?ここではマルチパラダイム言語「Rust」の特徴やメリットについて解説をしていきます。

Rustはコンパイラ言語

最近人気の言語、「PHP」や「Python」はコンパイル不要のインタプリタ言語ですが、「Rust」は処理速度の速さが特徴と言われるコンパイラ言語です。

コンパイラ言語は、人間が書いたソースコード(プログラム)をコンピュータに理解できる機械語に変換して動作するプログラム言語です。コンパイラ言語としてはJava、C言語、C++などがよく知られています。

安全性が高い

「Rust」ではすべての変数が常に値を持っており、基本的にシステムエラーの原因となるnull値が存在しない言語です。 「Rust」は他の言語で長年抱えてきたnull問題を解決し、システム全体停止につながるようなトラブルが発生しにくいため、安定性、安全性を重視したシステムの構築に向いています

他、メモリ効率の高さも「Rust」の特徴です。これまではエンジニア責任となっていたメモリ管理を「Rust」は言語側で行い、多くの言語の弱点だったメモリリークを抑制して安全性を担保している点も見逃せません。

高速でメモリ効率が高い

「Rust」はC言語を参考にした言語であり、処理の高速性を売りにするC言語の特徴を継承しており、ベンチマークテストでもC言語に匹敵する数値を出しています。このため「Rust」は高速処理が求められる案件でも強みを発揮します。

並行処理に強い

「Rust」は「マルチスレッド」でプログラムが処理できるような設計となっています。それぞれのプログラムに所有権の制約をつけ、各スレッド間でデータ共有が起きないようになっており、処理の安全性を担保しています。

またスレッド同士で可変オブジェクトの共有をする場合でも、コンパイルの際にデータ競合が起こらないことを確認するため、実行時に複数のスレッドが同一メモリ領域内のデータの読み書きが防止できます。このように「平行性」が保証されている点も「Rust」の大きな特徴の1つです。

Rustのデメリット

img_rust1.56.0_03

「Rust」はC言語やC++の良さを残しながら、それらの問題点を解消し、ボランティアたちの英知によって理想を追求した素晴らしいプログラム言語です。その一方、次のようなデメリットがあるのも事実です。

初心者には難しい

「Rust」の製作者たちはC++の弱点や問題点の解消を意識しながら「Rust」を作り上げましたが、彼ら自身がC言語やC++に精通しているため、それらが難解な言語だという認識が欠けていたのかもしれません。

開発の視点を機能に重きを置いたため、プログラム初心者のことは念頭になかったのでしょう。そのためか、プログラミング初心者にとっては難解な概念が随所に盛り込まれているように思われます。

たとえば「ライフタイム」や「オーナーシップ」「静的・動的ディスパッチ」などの概念です。恐らく、C言語やC++に触れたことがある中級以上のエンジニアであれば、まだ理解が早いかもしれませんが、初心者が学ぶにはハードルが高い言語と言わざるをえません。 しかし、逆に「Rust」を習得すれば、エンジニアとして大きな武器になる可能性は秘めていると考えられます。

日本では利用人口が少ない

「Rust」の2つ目のデメリットは、利用人口の少なさです。日本でもGAFAなど外資系企業では「Rust」エンジニアは少なからずいますが、その他の特に日系企業ではまだまだ「Rust」は浸透しておらず、教えてくれる上司も少ないでしょう。

参考書などで自己学習すれば、コーディングレベルまでは可能でも、エラーやバグの解消には苦労するかもしれません。

もちろん、アメリカなどでは利用人口も多く、ネット上には多くの情報が見つかりますが、英文か、英文を直訳したものが中心のため、語学力が求められます。

こうしたハンデも「Rust」の普及に伴って次第に解消していくことでしょう。逆にとらえれば、利用人口の少ない今だからこそ、「Rust」エンジニアは希少価値があります。興味のある方はチャレンジしてみるのも良いかもしれません。

Rustのインストール

img_rust1.56.0_04

「Rust」に実際に触れてみたいという方のために、インストール方法などを紹介します。

Rustの動作環境

「Rust」はJavaとは違って、プラットフォームを選びます。「Rust」は、「Linux」「MacOS」「Windows」「FreeBSD」「NetBSD」のOS上で動作します。

Rustのインストール

Rustのインストールは公式サイトから最新のファイルをダウンロード・実行するだけで、大変簡単です。

基本的には以下の公式サイトの記載内容に従って、インストーラーを起動するだけです。

Windows版とMac版ではインストール方法が違いますので、以下簡単に紹介していきます。

【参照】:Rust をインストール

Windows版のインストール

Windows10環境でRustを実行する場合は、Visual C++Build toolsのインストールが必要です。

インストール中にInstall the C++ build tools before proceeding.のメッセージが表示されたら、先に以下のマイクロソフトのサイトからインストールをしておいてください。

https://visualstudio.microsoft.com/visual-cpp-build-tools/

Mac版のインストール

MacOSに「Rust」をインストールする場合は、以下のコマンドをターミナルから実行するだけです。

『curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh』

Rustの将来性

img_rust1.56.0_05

人気言語の「Python」とパフォーマンスに優れた「Rust」のどちらを学べばよいか、悩まれる方もいるでしょう。将来性はどちらもあります。学習のし易さでは圧倒的に「Python」、今後の需要では「Rust」でしょうか。

先ほど紹介した通り、3大クラウド各社は「Rust」を採用し、各社のビジネスに生かそうとしています。日本でも急速に「Rust」の認知度は高まるでしょう。今すぐ決断をする必要はありませんが、これを機に次に学ぶ言語として「Rust」も選択肢に含めてみてください。 また今後C言語やC++から「Rust」への移行が進みますので、特にC系のエンジニアの方は、「Rust」は必須と考えておきましょう。

Pythonとは?人気のPythonを学ぶ際に知っておきたいこと
Pythonでできることとは?Pythonのメリットも詳しく紹介
気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT