Rustは速度、安全性、並行性の3つのゴールにフォーカスしたシステムプログラミング言語です。 2010年7月にMozilla Summitにて公開されました。そのため、比較的新しいプログラミング言語と言えます。
Rustが開発されたきっかけですが、2006年にGraydon Hoare氏が趣味でRustの開発を始めました。その後にソフトウェアデベロッパーであるMozillaが開発チームを編成し、本格的な開発が始まりました。
Mozillaは世界中で使われているブラウザであるFirefoxを開発している企業であり、FirefoxはRustによって開発されています。Firefoxはブラウザのシェア率が7.52 %(2018年8月)となっており、世界で3番目に使われているブラウザになっています。
Firefoxを使えばサクサクと高速にアプリケーションが動作することがわかるでしょう。使ったことない方はぜひFirefoxを使ってみて下さい。Rustの凄さが実感できます。
速度に関しては、ネイティブに近い形で実行されるので実行速度が高速です。安全性に関しては変数に寿命や所有権を与えることで担保されています。並行性に関してはマルチスレッドと呼ばれる1つのプロセスを複数のスレッドに分割して実行する方法が取られています。
また、プログラミング言語にはC++のようなコンパイル言語とRubyのようなスクリプト言語があります。コンパイル言語では人が理解できるコードをコンピューターが理解できるように変換しますが、スクリプト言語ではこのような変換はありません。Rustはコンパイル言語の仲間に入ります。
Rustは同じコンパイル言語であるC++で不可能であったメモリ管理を簡単にしながらも、高速でアプリケーションを動かせるということを実現するために開発されました。
続いてRustの特徴をもっと見ていくと、Rust公式ホームページに以下がRustの特徴として挙げられています。
・ゼロコスト抽象化
・ムーブセマンティクス
・保証されたメモリ安全性
・データ競合のないスレッド
・トレイトによるジェネリクス
・パターンマッチング
・型推論
・最小限のランタイム
・効率的なCバインディング
かなり難しい用語が並んでいるため、わからない方はスルーして頂いて大丈夫です。最初にRustの特徴で挙げた速度、安全性、並行性に全て通じています。
続いてRustについて習得難易度がどうなっているのか見ていきましょう。結論から言うと、Rustの習得難易度は高いと言えるでしょう。
理由はRustがコンパイル言語であること、Rustは比較的新しい言語であり、学習教材が他のプログラミング言語よりも少ないことが挙げられます。
まず、Rustがコンパイル言語であることに関してですが、RustはC言語やC++、C#、Javaなどのコンパイル言語に属しており、これらの言語と同じく習得難易度が高くなっています。
コンパイル言語は高速で動作がすることがスクリプト言語に比べて大きなメリットとなっていますが、一方で記述が面倒となっており、記述が短くて済むスクリプト言語と比べると記述面では大きなデメリットとなっています。
同じくRustも動作が早いというメリットはあるものの、記述が面倒な部分があり、その分習得は難しくなっています。
続いてRustは比較的新しい言語であり、学習教材が他のプログラミング言語よりも少ないことに関してですが、Rustは2010年に公開された比較的新しいプログラミング言語であり、その他の有名なプログラミング言語と比べると多くのユーザーには使われていません。
そのため、他のプログラミング言語よりも学習教材が少なく、自分自身での学習が難しくなっているプログラミングの一つとなっています。英語ができる方は海外サイトを利用して自分に合った学習サイトを見つけることができると思いますが、日本にRustを学べる学習サイトは少ないです。
今まではRustについてとRustは習得しやすいのかどうかについて見てきました。ただ、Rustを使う職場に転職した場合に「どのくらいの年収を貰えるのか?」「そもそもどういう職場に転職できるのか?」ということについてここではお伝えしていきます。
IT業界ではインターネット・Web業界、情報処理サービス業界、ソフトウェア業界、ハードウェア業界の4つに分類することができます。Rustを使えるとインターネット・Web業界、ソフトウェア業界の2つで活躍することができます。
まずインターネット・Web業界はWebメディア・ショッピングサイトなどの自社サイトを運営している企業が多いです。Rustの場合はベンチャー企業で使われていることが多く、仮想通貨取引所などのFintech系サービスで使用されていることが多いです。
ソフトウェア業界ではプログラマーかSE(システムエンジニア)としてiOSアプリ開発の下流もしくは上流工程に加わることになります。Rustの場合はデータ収集機器のソフトウェア開発や認証基盤のソフトウェア開発などのお仕事があります。
年収に関しては500万円以上のものが多く、年収1000万以上の求人案件もいくつかあります。
求人案件の絶対数は少ないものの、Rustを使えるエンジニアが少ないので年収は他のプログラミング言語よりも高くなっています。
特に仮想通貨取引所のシステム開発など最新の技術が必要になる求人案件は年収が高く設定されています。
Rustは将来性もあるので、狙い目かもしれません。
最後に実際にRustはどのように使われているのかということに関してMozilla FirefoxとDropboxを例に挙げて見ていきます。
Firefoxは世界的に使われているインターネットブラウザの一つであり、Mozillaは世界中で使われているブラウザであるFirefoxを開発している企業です。この企業がRustを開発しました。
Firefoxの開発にはRustが使われているわけですが、2017年末に公開されたFirefox57ではRustによる開発のおかげでFirefoxブラウザの動作速度が約2倍も早くなりました。
Rustの3つの特長である速度、安全性、並行性が存分に生かされたインターネットブラウザがFiredoxであるので、是非皆さんも利用してみてください。Firefox公式ホームページにはRustの技術ブログもあるため、そちらも是非ご覧になってみてください。
続いてDropboxに関してですが、Dropboxのバックエンド・インフラのほとんどのプログラムはGo言語によって開発がされていました。
ただ、一部の重要なコンポーネントではメモリ・フットプリントや、詳細な制御を欠いており、こちらではRustを採用することでこれらの問題を解決することにしました。
Dropboxは世界的に有名なオンラインストレージサービスですが、このような世界的に有名なサービスにRustが使われており、今後もますますRustは有名なサービスに使われていくでしょう。
Rustの言語 Rustの有用性を全方位で検証 というテーマで今回はお伝えしました。いかがだったでしょうか? 今回お伝えしたかったことは以下のとおりです。
Rustについて聞いたこと無い方も多かったと思いますが、今回の記事を参考にして是非Rustの学習に繋げてみてください。
3つの質問に答えるだけで、フリーランスエンジニアとしての単価相場を算出します。 スキルやご経験にマッチする案件もあわせてご紹介いたしますので、気軽にご活用ください! ※単価相場の算出に個人情報の回答は必要ございません。