お役立ち情報|フォスタージャーナル

Solidityはどのような開発言語?特徴・習得難易度・市場価値をご紹介

  • Facebook
  • Twitter
  • note

2023年07月11日

プログラム言語を学習する際にはその言語の特徴、自分が開発したいものに向いているのかを確認することが必要です。そして、最近需要が高まってきているプログラミング言語にSolidityがあります。

ではSolidityがどのような言語であり、なぜ需要が高まってきているのでしょうか。また、エンジニアとしての需要はどのぐらいあるのでしょうか。ここではSolidityの概要からエンジニア需要についてご紹介します。Solidityエンジニアをご検討中の方は、ぜひご確認ください。

・Solidityの歴史

・Solidityの特徴

・Solidityの活用事例

・Solidityの習熟難易度は高い?低い?

・Solidityエンジニアの市場価値

・Solidityの勉強方法

Solidityの概要

Solidityとはスマートコントラクト(後述)を作成するための機能を備えたプログラミング言語です。文法構文はJavaScriptに似ています。

Solidityはオブジェクト指向(データ処理のまとまりを組み合わせていくプログラミング手法)であり、人間にとって理解しやすい構文である高級言語です。Solidityをコンパイルする場合はSolidityコンパイラ(solc)を介してEthereum Virtual Machine Codeに変換し、コンピューター上で実行を可能にしています。

Solidityの歴史

Solidityの原型となる言語は2014年8月にGevin Wood(Ethereum共同創業者)が提唱しました。Ethereumとは契約内容の買い残などを防ぐブロックチェーン技術が備わったプラットフォームです。そして、Solidityはブロックチェーン技術を構築しやすい言語であることから需要が拡大し続けています。

また、近年ではブロックチェーン技術を用いるWeb3.0の需要が急激に伸びていることもSolidityの需要も拡大している要因です。ただし、PythonやJavaScriptのようなメジャー言語ほど開発事例や案件数が多いわけではなく、普及の途中である言語と言えます。

最新リリースは2023年5月10日に更新されたver0.8.20(2023年6月23日時点)です。

 Solidityの特徴

Solidityの人気が上がっている理由は主に3つの特徴からきています。では、ここでSolidityの特徴を確認し、これからも需要が伸びていき創価を考えていきましょう。

 特徴①スマートコントラクトを作成するための機能が搭載

スマートコントラクトとはシステム概念であり、ある条件を満たした際に自動的に契約が取り交わされる技術を指します。そして、ブロックチェーンの開発にはスマートコントラクタの実装が必須です。

そして、Solidityはスマートコントラクトの実装に対応していることからブロックチェーンの開発がしやすいといった特徴があります。Solidityはブロックチェーン専用の言語として開発されたものではありませんが、ブロックチェーンの開発のし易さから利用されることが多いです。

 特徴②シンプルな文法

スマートコントラクトのような技術を搭載するには難しいコード記述が必要になることが多いです。しかし、SolidityではJavaScriptに似たシンプルな文法でスマートコントラクトの実装をおこなうことができます。

また、文法がシンプルであることから他の言語を用いているエンジニアでも比較的学習が容易におこなえます。ただし、ライブラリなどに対する理解は必要な点にはご注意ください。JavaScriptエンジニアとして活動している方にとっては始めやすい言語です。

 特徴③チューリング完全言語

まず、チューリングマシンとは、ほとんどの計算を自動化できるものであり、チューリング完全言語はその機能が備わっているプログラミング言語を指します。具体的にはチューリング完全言語は、ランダムアクセス可能な無限のメモリとCPUからなる計算機をエミュレートするエミュレータ」を書ける言語です。

Solidityはチューリング完全言語であることから大半の計算を処理できます。Solidityがよく用いられるブロックチェーンは複雑な計算処理をおこなうため、こちらの特徴は必須なものです。

Solidityの活用事例

Solidityは実際にどのようなサービスに利用されているのでしょうか。ここで実例を確認し、Solidityの可能性を探っていきましょう。

Uniswapはブロックチェーンを利用した分散型取引所であり、1,500種類以上の暗号資産を取り扱っています。ユーザーは暗号資産の交換、NFT取引、流動性マイニングなどをおこなうことが可能です。

Uniswapは口座開設が不要、グローバルで利用が可能、取引銘柄が豊富、流動性提供による報酬、多数のメリットがあり、Solidityを用いたUniswapは今後も拡大が見込まれます。

 Compound

Compoundは暗号資産の貸し借りを自動化(引き換えにあずかりの証拠としてcTokenを発行)するサービスです。この機能はスマートコントラクトによって実現しており、機能の構築はSolidityでおこなわれています。

本サービスは時価総額ランキング88位を達成しました。さらに、仮想通貨の取引に参入した人、暗号資産預託金残高は増え続けており、今後も利用の拡大が見込まれます。

cryptokitties

cryptokittiesはスマートコントラクトによる課金処理を実装したゲームです。ゲーム内ではキャラクターを繁殖したり収集したりすることができます。また、サービス内にあるマーケットで個人売買をおこなうことも可能です。

このゲーム内では売買契約処理にスマートコントラクトを利用しており、利用者は確実な取引が可能になります。このように仮想通貨などだけでなく、ゲームのようにより大衆向けのサービスにも利用が可能です。

 aragon

aragonは組織運営をおこなうためのソフトウェアです。本サービスを利用すると、ブラックチェーン上にDAO(特定のリーダーを持たない組織)を構築します。また、サービス内でガバナンストークンでの発行・管理・投票機能、賃金のマネジメントも可能です。

aragonによって立ち上げられたODA数は1,700を突破(2021年6月時点)しました。このように経営などの分野にもSolidityによって開発されたサービスは普及しています。

Solidityの習熟難易度は高い?低い?

結論から申し上げるとSolidityの習得難易度は比較的低いと言えます。理由は、Solidityの特徴でもあった文法のシンプルさです。とくに、JavaScriptを習熟している方はSolidityの習熟はとてもスムーズになります。

しかし、SolidityはPythonやJavaScriptと比べると参考書や解説記事などの数が少ないです。そのため、プログラミングが完全に初めてな場合は難しく感じるかもしれません。つまり、Solidityはプログラム経験者には容易な言語ですが、初心者には厳しい可能性が高い言語です。

Solidityエンジニアの市場価値

Solidityを用いて開発されたサービスは増えてきていますが、Solidityエンジニアの需要はどのようになっているのでしょうか。ここでSolidityエンジニアの需要について確認し、これから自分は学習を進めていくべきか考えていきましょう。

 これからSolidityエンジニアの需要は伸びるのか

Solidityの主な利用方法であるブロックチェーンの普及が急激に進んでいることからSolidityエンジニアの需要も伸びていくことが予想されます。

とくに、ブロックチェーンを利用するWeb3は情報漏えい対策や個人情報保護の観点から経済産業省が推進をしている技術です。このような観点からもブロックチェーン技術の利用は増え、結果的にSolidityエンジニアの需要も伸びるでしょう。

未経験Solidityエンジニアの年収相場

未経験Solidityエンジニアの年収相場は400万円から800万円程度と幅広いです。幅が大きくなっている理由としては下記のものが考えらます。

・雇用先企業の給与形態
給与体系としてそもそも給料に差がある

・転職前の実績
Solidityは未経験であるが他の言語の経験があると給料が高くなりやすい
また、外資系企業と内資系企業では給与水準に差がある

・地域
エンジニアは関西がもっとも給与平均が高く、もっとも低い中国と比べると差は43万円になる

・Solidityエンジニアの少なさ
Solidityエンジニアは他の言語と比べるとそこまでメジャーなものではなく、1つのデータで平均が大きく上下する

とくに、日本ではSolidityエンジニアはそれほど多くないため、確かなるデータが取れていない可能性があります。また、エンジニアは各々のスキルによって年収が大きく上下するため、結局は個人によって異なるといった結論に至ってしまいます。

そのため、エンジニアとしての給料を調べるためには自分自身のスキル・状況に合わせて確認をしなければなりません。自分のみで調べることは難しいですが、エージェントサービスのなかには収入水準の相場を知らせてくれるサービスがあるため、予想がつかないのであればサービスの利用もおすすめです。

 正社員Solidityエンジニアの年収相場

正社員Solidityエンジニアの年収相場は500万円から1,500万円程度です。この幅は前述の理由からきていると考えられます。

大きな開きはありますが、日本の平均年収(443万円)と比べると高水準です。しかし、SolidityだけでなくJavaScript(フロントエンド開発)やPython(APIアクセス)のスキルも求められることがあるため正社員となるためには幅広い知識を習得しなければなりません。

Solidityエンジニアを目指す場合でもでも高収入や活躍を目指すのであれば他の言語についても学習をしていきましょう。

フリーランスSolidityエンジニアの年収相場

フリーランスSolidityエンジニアの年収相場は1000万円程度となっています。こちらは、フリーランス案件の月額平均単価から算出しているものです。ここからフリーランスになると比較的高水準な年収なことがわかります。また、リモートワーク可である案件も複数見られました。

単価の詳細は以下の表のとおりです。

平均単価

88.9万円

中央値単価

90万円

最高単価

130万円

最低単価

65万円

平均値と中央値ともに90万円前後となっているため、長期的な案件を受注することができると年収1,000円を達成できます。

Solidityの勉強方法

Solidityエンジニアは高い年収を得ることが可能ですが、そのためにはSolidityに対する勉強が必要です。ここでSolidityを勉強するにはどのような方法があるのかを確認してみましょう。また、適している勉強方法は人によって異なるため、どれが自分にもっとも合っているのかも考えていきましょう。

 参考書籍

参考書籍は比較的安価でおこなえ、学習を自分のペースでおこなえるといったメリットがあります。しかし、参考書籍は独学になるため質問ができないといった点がデメリットです。

また、Solidityはそれほどメジャーな言語ではないため参考書籍が豊富ではありません。そのため、自分に適した参考書籍が見つからないこともあります。現在出版されている書籍として評価が高いものには以下のようなものがあります。

・概要把握:図解ポケット 次世代プラットフォーム イーサリアムがよくわかる本

まずはこれらの書籍を購入し、Solidityがどのような技術であるのかを学んでみましょう。

youtube

動画投稿サイトであるyoutubeにはさまざまな解説動画が上がっていますが、Solidityに関する解説動画も複数見られます。例えば、以下のような解説動画があります。

SolidityでHello Worldを書いてみよう!【第1回】Solidity 基礎編 (スマートコントラクト プログラミング入門)

https://www.youtube.com/watch?v=3BmQzMtDV2o

youtubeは基本無料、自分のペースで学習をすすめることができるといった点がメリットです。しかし、現段階では動画数はそれほど多くありません。また、独学になることから質問ができないといった点もデメリットです。

プログラムスクール

プログラミングスクールは講師がつくため質問が可能です。また、スケジュールなどを組んでくれるため独学と比べると挫折がしにくいです。しかし、プログラムスクールは高額なことも少なくありません。また、Solidityに関しては授業メニューとして用意されていない可能性もあります。

Solidityに関する授業があるプログラムスクールを探し、料金や授業スタイルが自分に合っているのか確認していきましょう。Solidityに関する授業があるプログラムスクールの例としては以下のようなものがあります。

・TechAcademy
・FLOCブロックチェーン大学校

 インターネット学習サイト

インターネット上にはSolidityの学習サイトがあり、そちらで勉強を進めることも可能です。たとえば、Solidityに関する学習サイトとしてはCryptoZombiesがあります。

CryptoZombiesはゲーム感覚で学習を進めることができる、日本語対応、プログラムをブラウザ上で実行(環境構築などの必要がない)といった点がメリットです。しかし、solidityの更新がなされていないためバージョンが古いです。

インターネット学習サイトで勉強をする場合はそのサイトのメリットとデメリットを把握してから利用していくべきか判断していきましょう。

エンジニアとして活躍するためにはその言語のツールを駆使することが必要です。Solidityに関するツールとしては下記のようなものがあります。

Remix:Solidityにすぐに触れられるIDEであり、WEBベースでの利用が可能

  • Truffle:スマートコントラクト用のフレームワークであり、もっともベーシックなツール
  • Visual Studio Code:有名なエディターであり、Solidityの拡張機能が搭載
  • OpenZepplin:Ethereum上でスマートコントラクトを実装するためのフレームワークであり、非常に多くの機能が搭載

ツールの向き不向きは人によって異なるため、実際に触ることでどれが向いているのか確認していきましょう。

まとめ

Solidityはブロックチェーン技術などに利用されるスマートコントラクトを比較的容易に搭載できるプログラミング言語です。ブロックチェーン技術自体の需要が上がっているため、Solidityも同時に需要があがっていくと予想されます。

また、Solidityエンジニアはエンジニアのなかでも平均年収が高水準です。Solidityエンジニアを目指す場合はどのような記述法であるのか、独自のライブラリにはどのようなものなどから勉強していきましょう。

  • Facebook
  • Twitter
  • note
新着案件情報を他の人より早くチェック!