JOB
公開日:

フリーランスのRust案件って稼げるの?

エンジニアが扱う様々な言語や技術について紹介している本シリーズですが、今回はRustを紹介していきます。Rustは安全性、速度、並行性の3つに焦点を合わせて開発され、Mozilla Foundationが支援するプログラミング言語として知られています。

今回はRustに関して、

「どんな特徴がある言語なのか」

「エンジニアとしての案件にはどんな内容があるか」

「今後の将来性はどうか」

といった観点でお話させていただきます。

Rustとは

Rustは、Graydon Hoareが個人のプロジェクトとして開発をスタートしました。GraydonはC++の問題点を強く感じており、それを解決したいと考えてRustの開発に着手しました。C++は、「高速に動作するアプリケーションを開発できる」といった特徴を持っている反面、「メモリ管理が難しい」といった難点を持っている言語でした。そこでRustは、C++が持っている特徴を生かしつつ、メモリ管理を容易にしようと開発が進められていきました。そして今では、Firefoxを開発したMozilla Foundationが支援されるまでに信頼を獲得する言語へと成長しました。2019年7月には、Microsoftも「C」や「C++」に代わるシステムプログラミング言語には何がふさわしいのか、最有力の選択肢として「Rust」を挙げています。Rustが持つ優れた特徴を具体的に見ていきましょう。

安全なメモリ管理が可能

プログラム内で定義する変数に寿命を与えることで、すでに解放されて使用しない変数にアクセスすることを防ぐことができます。また、変数に所有権を設定し、複数の箇所からの意図しないメモリ書き替えの動作を防止することができます。これらの機能により、メモリをより安全に管理することができます。

高速に動作するアプリケーション開発が可能

Rustは低次元レイヤまでアクセスすることが可能であり、他の言語よりも細かい調整を行うことができます。開発するアプリケーションにおいて最適な調整をすることで、より高速なアプリケーションを作り上げることができます。

並行動作を安全に実行可能

メモリに所有権を与えることができるため、マルチスレッド動作を安全に行うことができます。C++では実装が難しかったマルチスレッド動作を、比較的容易に実装することができます。

Rust案件の内容とは?

エンジニア向けに提示されているRust案件を見てみましょう。内容を見てみると開発系のものがほとんどです。具体的にどんなものがあるのか見てみましょう。

  • データ高速処理システム開発
  • 広告プラットフォームのデータ環境開発

Rustを用いた案件の特徴としては、バックエンドでのデータ処理をするアプリケーションの開発がほとんどになります。ただ、案件の数が極端に少ないため、案件として共通の特徴を見つけることは難しいのが現状です。

Rust案件の将来性はあるのか?

続けて、Rustの将来性という観点ではどうかについても見ていきましょう。結論から言うと、今後日本でRustが普及していく可能性は低いでしょう。現状でも案件の数が極端に少なく、学んだとしてもすぐに生かして仕事をすることは難しい状態にあります。また、Rustは学習の難易度が高いことで知られており、開発チーム自信もその事実を認めているほどです。Rustは、似たような言語としてGoとよく比較されています。Goは経験が少なくてもそれなりのプログラムを書くことができますが、Rustは数ヶ月かけて勉強しないと生産的なものは作れません。こういった学習コストの高さから、新規にRustを扱えるエンジニアが増えにくいです。

日本ではあまり普及していないと思われるRustですが、世界規模に視野を広げると人気がトップクラスに高い言語です。ソフトウェア開発者向けのQ&Aサイト「Stack Overflow」が2179カ国/8万8883人のソフトウェア開発者を対象に実施した「Developer Survey Results 2019」では、次のような結果が出ています。

最も愛されているプログラミング言語トップ10:1位Rust

最も稼げるプログラミング言語トップ10:8位Rust

世界中で取ったアンケートの結果では、Rustは多くの人に愛される言語として認識されています。Rustが愛されているプログラミング言語として1位を取るのは2019年で4年連続になり、長く人気を博していることがわかります。日本だけでなく世界規模でみると、不動の地位を築いているのです。

今後、日本も世界で人気を博しているRustを使おうという流れが来れば案件数が増えていく可能性はあります。ただ、現状でもほとんど案件がない点や学習コストが高い点を考えると、日本で普及していく可能性は低いと考えられるでしょう。

Rustエンジニアの単価相場は?

続けて、フリーランスのエンジニア向けに提示されているRust案件の単価を見てみましょう。Rustは案件数が極端に少ないため、参考にできるデータがほとんどありません。そのため、具体的に単価を算出すること難しいですが、「Developer Survey Results 2019」を見てみると、Rustを扱うエンジニアの平均年収は7.2万ドル(約767万円)と提示されています。すべての言語の中でも、Rustは第8位であることを見ても案件に参画できれば高年収を期待できる言語とは言えるでしょう。

Rust案件で稼ぐためには?

Rustの案件の中でも、設定されている単価には大きな差があります。高い単価の案件を見てみると、提示されている内容にある程度の共通点が見えてきます。本章では、高単価案件に共通して存在する特徴から、どういったスキルや経験が求められるのかを見てみましょう。 

コミュニケーション能力

Go言語は、大規模な案件に使用されるケースが多いです。そのため、業務に関係する人の数も多くなりがちです。業務を進めていくうえで、同じチームのメンバーや他のチームのメンバーとコミュニケーションをとる場面が必ずあります。そこで相手が伝えたいことをくみ取り、自分が伝えたいことをわかりやすく伝えるコミュニケーション能力が求められます。実際に高単価案件の募集要項を見てみると、「明瞭なコミュニケーションをとることができる」などの条件が提示されているケースも多いです。そういった理由から、技術としてのスキルだけでなく他者とコミュニケーションをしっかりとれるエンジニアは高単価での案件受注が期待できます。

データベースの理解

バックエンドの開発において、データベースに関する知識を持っていることが必要になります。特にデータベースのなかでも、MySQLを扱えることが求められるケースが多いです。

大量のデータ処理を必要とするWebアプリケーション開発において、特にデータベースは絶対に必要です。そのため、Rustと合わせてデータベースを理解していること強みにすることができます。

ただデータベースに関する知識をもっているだけでなく、実務で使った経験を持っていて十分に使いこなせるかどうかも重要になるのです。

マネジメントスキル

メンバーを率いてプロジェクトを進めるマネジメントスキルです。 近年ではエンジニアが不足しており、今後稼げる業種の1つとしてエンジニアを目指す人が増えてきています。それに比例してプログラミングを学ぶ方がどんどん増えてきています。 しかし、実際にエンジニアを求めている企業ではコーディングをしてくれる人材よりも、プロジェクトを問題なく進めてくれる優秀なプロジェクトマネージャを重宝しています。 そこで、マネジメントスキルを持っているエンジニアは高い単価で仕事を受けることができるのです。

エンジニアが扱う様々な言語や技術について紹介している本シリーズですが、今回はGo…
続きを読む
エンジニアのみなさん、現在の収入に満足していますか?今回2018年度のプログラミ…
続きを読む

まとめ

以上、Rustについてエンジニア向けの案件という観点でお話させていただきました。Rustは、C++をさらに便利にするべく開発された言語であり、今ではMicrosoftもC++に代わるものとして認めています。ただ、日本での普及という観点でみると現在もこれからも広がっていくことは難しいと考えられます。人口が少ない日本では、学習コストの高さから積極的に学ぼうと考えるエンジニアが少ないためです。エンジニアとして長く活躍していくうえで、人気があり多くの企業で使われている技術が扱えることは重要です。その観点から考えると、Rustを学ぶにしてもRustだけでなく、他の日本で人気がある言語も扱えるようにしておきましょう。

無料会員登録で、あなたにおすすめの案件やセミナーの情報をお送りいたします。
まずは無料会員登録を。

おすすめ案件

関連タグ

フリーランスエンジニアの案件をお探しします!
上記案件のほか、非公開のGo案件も多数あります