go言語って何?そのメリットとデメリットをまとめました!

go言語(golang)の特徴とは

2009年にGoogleが発表したプログラミング言語で、歴史は浅いのですが人気・需要が高まってきています。人気と需要が高い理由は、シンプルで使いやすく初学者でも学習がしやすい事と、処理速度が速いことが挙げられます。また、C言語の開発者Ken Thompson氏、UTF-8やUNIXの開発者Rob Pike氏、memcachedの開発者Brad Fitzpatrick氏など、伝説級のエンジニアによって開発されたという背景も人気の理由の1つです。go言語(golang)の代表的な特徴を4つ紹介します。

①シンプル

C言語やJavaと構文が似ているので、これらの言語を書ける人はよりスピーディにgo言語を習得が可能です。go言語ではさらにシンプルで分かりやすい構文・文法となるように注意が払われています。例えば、繰り返し構文はfor文しかなく、while文やdo/while文などはありません。表現方法を制限することで、コンパイルを高速化し、プログラマ毎の表記のばらつきを抑えることができます。

②時代の流れに敏感

go言語はクロスコンパイルや並列処理をサポートしています。例えばMacで開発しててもコンパイル時にOSとCPUアーキテクチャを指定するだけでLinux、Windows用の実行ファイルを作れます。また、軽量スレッドを用いて処理を並行に実施し、同時に実行されているスレッド間でデータをやりとりするしくみが備わっています。

③充実した開発環境と豊富なライブラリ

go言語は2009年にリリースされた新しい言語ですが、開発を助ける環境が充実しています。さまざまなパッケージやツールが最初から用意されていたり,各エディタやツールのためのプラグインなども多く公開され、ライブラリも豊富にあります。このため、すぐに開発を始めることができます。

④処理が速い

go言語はシンプル構造がゆえに、実行時の処理速度はPythonやJavaと比べても単純に早いです。ここで、google app engineのようなPaaS上で動作させる具体的な例を挙げると、一定時間のアクセス・処理がない場合は、余計なCPU等リソースを消費しないようにコンテナが停止します。アクセスがあってコンテナを起動する際、例えばJavaの場合はJVMを起動するのに時間を要します。go言語の場合、クロスコンパイルができることからVM環境は不要のため、VM起動時間は0となって高速にレスポンスを返すことができます。

⑤安全性が高い

go言語は型宣言が厳格でタイプセーフであることからメモリセーフであり、安全性が高いです。メモリの開放忘れ等も発生しずらく、メモリリーク(開放忘れ)のリスクが低くなります。

goエンジニアの年収は? 

2018年のプログラミング言語別の年収ランキングは、1位:go(平均600万、最大1600万)、2位:Scala(平均600万、最大1300万)、3位:Python(平均575万、1499万)となります。

需要の高さと習得者が現在少ないことが合わさって、ランキング1位となっています。求人数についても、2017年から1.9倍も増加している傾向があり、今後さらに需要が高まる可能性を持っています。

 go言語を使うメリットとは 

開発中におけるメリットと運用が始まってからのメリットに分けることができます。開発中のメリットは「コンパイルが速い」「メモリ安全性が確保されている」「妥当で現実的なレベルの型安全性が確保されている」「標準ライブラリが整備されている 」「シンプルでバランスの取れた言語仕様で習得が比較的容易」があり、駆け出しのプログラマでも仕事がしやすいようデザインされている点にあります。

運用中のメリットは「実行時パフォーマンスが良い」「Dockerなどの素晴らしい大規模プロジェクトでの実績がある」「実行環境としてJVMやインタープリタを必要としないのでデプロイが軽量で済むのと、利用者にランタイムやJavaVMのような追加インストールが不要」があり、システム利用者への負担を減らせるという点にあります。

go言語は完成度の高いシンプルな言語ではありますが、そのメリットを最大限に活かしたり、または、誤った設計をしないように工夫が必要です。go言語が業務の中心となっているメルカリ社では、毎週金曜日に「Go Friday」という勉強会を開催しています。「goをどうやって使っていくか」「どう設計すればよいか」といったgo言語を学ぶための勉強会からスタートし、今ではGoogle Cloud Platform全般に関する知見を共有し、知識を深める勉強会となっています。

 go言語はなぜ批判が多いのか、go言語のデメリットについて 

go言語はシンプルさを追求するがゆえのメリットがありますが、そのために削ぎ落した機能や工夫に対する批判やデメリットがあることも事実です。代表的なものを4っ紹介します。

①Generics (template) がない

go言語にはGenericsがありません。JavaのGeneric TypesやC++のテンプレートで書けるようなことができません。ただし、配列、mapはサポートされているのでJavaやC++で総称型を使うパターンの9割は解決できる課題です。これはセキュアなメモリ管理を達成するために切り捨てられた機能の一つです。

②継承がない

go言語には継承がありません。継承はありませんが、実質的に同じ役割を果たすEmbedという機能があるので、考え方、使い方の違いということになります。

③例外処理がない

例外処理を書かないようにするというのが基本思想です。panic、recoverを使って例外処理と同様なことは実現できますが、気軽に使ってよいものではありません。例外処理を書くと、例外やエラーが発生した際にコードが想定外の順序で実行されてしまったり、処理実行自体がスキップされて困ることがあります。大規模なプロジェクトの中で例外処理を正しく扱うのは困難なため、例外がないことは必ずしもデメリットではありません。

④ベテランプログラマ向けのデザインではない

go言語は乱用するとプログラムを無意味に複雑にしてしまう機能が排除されています。経験の浅いエンジニアでも簡単に理解し、大きなシステムを構築するのに使えるようデザインされています。ベテランからすると物足りなく感じたり、高度なテクニックが活かせない場合があります。

 go言語 経験ありの求人一例

go言語を使って自社開発をされている企業様より求人募集がきています。一例ではありますが、記事中に「Go Friday」でご紹介したメルカリ様を始め、Gunosy様、サイバーエージェント様といった知名度の高い企業様より、go言語経験者の方の求人があります。経験がある方は是非ご相談ください。

転職エージェントに頼りましょう

エンジニア業界の転職は、自分でするよりも転職エージェントを利用した方が良いです。
業界に精通しているキャリアコンサルタントが、あなたの転職活動をバッチリサポートしてくれます。

ただ、キャリアコンサルタントは経験もスキルも正直ピンキリなので、そういった優秀なキャリアコンサルタントに当たるためには、複数の転職エージェントに登録してみるべきです

定番の大手エージェントの中から2〜3社、特化型のエージェントを1社程度、
まずは登録して実際にキャリアコンサルタントに直接会ってみた上で、実際にサポートを進めてもらうエージェントを比較検討してみることをおすすめします。

※以下の各転職エージェントのリンクから各社の登録サイトに直接飛べるので、そちらから早速会員登録をしてみましょう。

エンジニアやデザイナー、クリエイターの転職に特化した転職エージェント

マイナビ新卒やマイナビエージェントでお付き合いのある企業とのコネクションを生かした、幅広い求人提案がウリ

ポイント
  1. 実務未経験からでも挑戦できる求人を保有
  2. 大手からベンチャー企業まで、コンサル、SIer、WEB系の幅広い求人を保有
  3. 業界に精通した専任のアドバイザーが転職サポート

マイナビITの評判・口コミから分かる利用すべき人

エンジニア・クリエイター向けのフリーランス支援サービスも展開。
豊富な情報量×きめ細やかなサービスに強み。

ポイント
  1. IT・Web業界トップクラスの求人数とサポート実績!
  2. 現役エキスパートエンジニアから応募書類の添削を受けられる
  3. 正社員とフリーランス両方のキャリア相談が可能。フリーランスも検討したい人にオススメ

レバテックキャリアの評判が悪いって噂は本当?IT業界に強い理由を大公開
レバテックキャリアのサービスへのこだわりを徹底取材!

22歳から34歳の方は必ず登録すべき!大手エージェント


30代前半ぐらいまでの方で多いのが、自分の進むべき業界・職種が定まっていないケースです。
そういった方は幅広い業界・職種の求人を扱う大手エージェントにまず登録し、コンサルタントと壁打ちしながらキャリア相談をしてみるのがオススメです。

業界No.1!転職者の8割が利用している
国内最大の定番エージェント

ポイント
  1. 求人数が業界No.1!人気企業・大手企業の非公開求人を多数保有
  2. 数の強みを活かした幅広い業界・職種の提案が可能
  3. たくさんの求人の中から比較検討できる

リクルートエージェントの評判って良いの?元社員が徹底解説します!

20代の登録者数No.1!
20代・第二新卒向けの非公開求人を多数保有

ポイント
  1. 新卒サイトの掲載社数、業界No.1!若手層を採用したい企業とのコネクションを活かし、20代向けの全業界・職種の求人を網羅
  2. 若手層の転職サポートやアドバイスに強み。

マイナビエージェントの評判は?転職のプロが本当に利用すべきか解説!

年収500〜600万円以上の転職を目指す方向け


※ハイクラス求人は絶対数が少ないため網羅するためにも、転職サイトと転職エージェントは両方に登録しておくのがオススメです。

年収600万〜1500万の求人が豊富な転職サイト
年収・求人の質ともに高い優良求人を多数掲載

ポイント
  1. 企業の採用責任者やヘッドハンターから直接スカウトが届く!
  2. 中小のエージェントとのコネクションも作れるので、大手エージェントと併用して利用するのがオススメ
  3. 大手エージェントで取り扱っていないような隠れた優良求人が見つかる

ビズリーチ(BIZREACH)の評判は?利用者の口コミを公開!

国内3位、高年収求人領域では国内No.1の転職エージェント
外資系企業やコンサルティングファームなどの転職サポートにも強み

ポイント
  1. 年収600〜1500万円の高年収の非公開求人を大量に保有
  2. 30〜40代のマネジメント層や専門スキルを持った方向けの求人も多数

JACリクルートメントの評判・口コミまとめ!現役転職エージェントが解説します!

女性の転職支援に特化した、転職エージェント

女性のアドバイザーが担当!女性特有の悩みに寄り添ったきめ細やかなサポートがウリ

※サポート可能エリアが1都3県に限られます。
それ以外の方は、全国規模でサポート可能で、女性向けや事務職求人などの豊富な求人をもつマイナビエージェントリクルートエージェントへの登録がおすすめです。

ポイント
  1. 女性に人気の事務職(総務・庶務・秘書・営業事務・経理事務など)の求人も豊富
  2. 未経験からでも挑戦できる職種も多数!

@type女性の転職エージェントの評判は?誰が使うべき?