フリーのエンジニアにとって、専門とするプログラミング言語の選択は非常に重要です。新たなプログラミング言語を学び直すことは、世間で言われているほど簡単なことではありません。つまり、フリーランスエンジニアにとってプログラミング言語の習得は大きな投資。短期的な視点のみならず、中長期的な視点の両方で、状況をよく見極めることが大切です。
今回は数あるプログラミング言語の中でも、ここ数年で急速に広がりをみせるGoエンジニアの需要状況を、フリーランスエンジニアやこれからフリーランスを目指すエンジニアにお届けします。
Goとは
Goは2009年に登場した新しい言語です。それにも関わらず、ここ数年で急速に広がりをみせています。それもそのはず、実はGoはあのGoogleが開発している言語なのです。Goは2009年にGoogleによりオープンソースのプログラミング言語として発表されました。CやC++などが使用されるシステムプログラミングの領域で,より効率良くプログラムを書くことを目的に作られています。全体的に意外性の少ない無難な言語仕様を持っていて、優等生な言語と言えます。これは「多人数で長期間メンテナンスされるプログラムを想定した」設計方針の表れでしょう。Google自身がソフトウエア開発の一部で用いているほか、他社による採事例も増加。例えばDropboxは2014年7月にGo言語を採用。国内でもサイバーエージェントやLINE、カヤック、はてなやメルカリ、Gunosyなどがサービス開発の一部にGo言語を採用していることを明らかにしています。
Github内で利用されているプログラミング言語のトップ10(Language Trends on GitHub)にはランクインしていないことから、まだまだ発展途上の言語と言えるでしょう。しかしGoogleが開発している言語でもあるので、今後の発展も見込め、エンジニアとしては押さえておいて損はないです。
Goの特徴とは
シンプルさ
Goは,ほかの言語が持つような機能の多くを削り,言語をシンプルに保っています。こうした機能の排除は,コンパイルの高速化や,予期せぬミスを減らすことに役立っています。
環境に依存しない
Goは動作が環境にほとんど依存しません。Java, Node.js, Ruby や Python などは実行に必要な大量のライブラリや、OSの環境を整えるプロビジョニング作業の手間が大きく、実行環境とテスト環境の小さな差異が障害につながることもあります。Goであれば、Linuxが動くという最低限の環境でも動作するポータブルなバイナリが生成されるので、プロビジョニングの手間がほとんどなく、動作も環境にほとんど依存しません。
表記が揺れないための工夫
Goはプログラマの個性が出てしまうような範囲をあえて狭め、多様性が出ないような配慮があり、それがコードの可読性にもつながっています。
多人数で長期間メンテナンスされるプログラムを想定して設計されており、プログラムの表記が人によってずれないような工夫がされています。例えばループ構文はforの1種類しかありませんし、三項演算子はありません。読みやすさを重視したプログラムになるよう、意図的に言語仕様をコンパクトに抑えているのです。またSDKにはコード整形ツールが備わっており、スタイルを強制的に統一することができます。
豊富なライブラリ
誕生して10年にも満たない言語ですが、ライブラリの豊富さには定評があります。標準ライブラリもさることながら、サードパーティによるライブラリも非常に充実しています。これにはライブラリが手軽に公開できる、ということが大きく寄与していると思われます。GitHubなどのリポジトリをライブラリとして参照することができるため、公開と利用のハードルがとても低いのです。
クロスコンパイル可能なコンパイル言語
GoはコンパイルしてOSネイティブな実行ファイルを作るタイプの言語です。これに加え、大きな特徴としてクロスコンパイルが可能です。これは「たとえ対象のOSの上で無くてもそのOS向けの実行ファイルを作ることができる」という意味です。例えばMac OS X上でWindows向けのexeを作ったりすることができます。ネイティブな実行ファイルができるという意味は、別途ランタイムをインストールする必要がないということです。このため、広く配布するコマンドラインツールの作成にGoを用いることがあります。
Goのトレンドとは
Goはここ数年で大きく市場での注目と評価を高めています。
並列性能が向上したほか、ガベージコレクタの性能向上やコアライブラリの整備も進み、プロファイリングやデバッグがネイティブにサポートされたことで、開発環境としての扱いやすさも向上しています。最近ではGoogle App Engineのサポート言語に加わるなど、実用性も向上しています。もともとGoはCを良くしたものという印象が強い言語ですが、最近では国内のWeb開発にも積極的に採用されていて、活用できる場が増えています。特に、並列プログラミングが必要になる場面で力を発揮しています。この特徴を活かして、マイクロサービスアーキテクチャの開発言語として採用されることが多いように思います。最近では、クラウドサービスの活用やマイクロサービスアーキテクチャの流行があり、並列プログラミングの考え方は重要なスキルになるでしょう。
Goの求人トレンドとは
Googleの恩恵と、クラウド開発を劇的に単純化する機能により、GoはRedmonkという開発者が好むプログラミング言語を調べる2013年のランキングで28位でしたが、2015年には17位に上りつめるという躍進をみせています。まだまだ新しい言語ということもあり、プログラマ人口はPHPやJavaと比べると少なくはありますが、その分プログラマーの能力に左右されずに安定した開発案件を手掛けることができるといった面を考えると、これからGo言語を学ぶ時間は決して無駄なものではないと言えます。また、先にお伝えした通り、国内のWEB系企業もGoを採用し始めています。
Go求人案件の単価相場は?
フリーのエンジニアが受け取る報酬の相場は一般的にプログラマで「40~60万」、システムエンジニアで「60~80万」と言われています。もちろんスキルや時間によりますが、一般的にはGoですと一人前のエンジニアでだいたいの相場は月60万円〜高い方で110万円程です。
案件数だけで見るとRubyはJavaやPHPなどと比べて少ないほうですが、エンジニアやプログラマーも慢性的に人手不足と、WEB系企業を中心としたGoへの注目度の上昇を考慮すると、Goを取得している方はかなり重宝される傾向にあります。
Goの最新案件情報<随時更新中>
まとめ
Go言語の文法はC言語に似ているところが多いですが、オブジェクト指向の考え方を採用していたり、メモリーの確保や解放を明示的に行う必要がなかったり、データ型のエラーがコンパイル時に表示されるのでその時点で修正ができたりするといったメリットがあります。
現時点での報酬の高さはもちろん、開発効率の良さやチーム開発との相性の良さも特徴の1つです。ぜひ習得し、お仕事を探してみてください。
最近はプログラミングの入り口としてよくセミナーも開かれております。勉強したらどんどんサイトを開発して、スキルをつけて高単価でトレンド感のある案件に入りましょう!ポテパンではGoを勉強した後にどうしたらいいのか分からない方のお仕事サポート実績が豊富です。
確実に仕事・実績に繋げるコンサルタントを得意としております。プロに案件探しを手伝ってもらいたい方は下記からぜひお申し込みくださいませ。
無料登録はこちら