2019.11.13

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

この記事を書いた人

アクシス株式会社 代表取締役

末永雄大

Suenaga Yuta

Profile 新卒でリクルートキャリア入社。その後、サイバーエージェントにて集客支援を行う。
2012年転職エージェントとしてアクシス株式会社を設立。
Yahoo!ニュース(個人)・オールアバウトガイドなどのメディアに転職のプロとして記事を寄稿している

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社程度、 まずは登録して実際にキャリアコンサルタントに直接会ってみた上で、実際にサポートを進めてもらうエージェントを比較検討してみることをおすすめします。

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

エンジニア・デザイナーの転職に特化した転職エージェント

エンジニアのフリーランス支援サービスも展開。
IT/WEB業界に特化しているからこその豊富な情報量×きめ細やかなサービス

※登録完了後、「これまでのご経験、ご希望の入力」も記入することで非公開求人を優先的に提案してもらえます。【2分程度で完了】

ポイント

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

レバテックキャリアに
相談する

大手上場企業から人気ベンチャー企業、隠れた優良企業の求人が多数!
エンジニアからPM、コンサルタントまで幅広い求人提案が可能!

ポイント

  1. 実務未経験からでも挑戦できる求人を保有
  2. 大手からベンチャー企業まで、コンサル、SIer、WEB系の幅広い求人を保有
  3. 人気の社内SE求人も多数!働き方に合わせた多彩な求人アリ

マイナビITに
相談する

大手や人気企業の求人を多数保有!大手エージェント

大手エージェントには、全業界・職種の求人が集まっています。さらに、大手企業や人気企業の求人を独占で持っていることも。
幅広い選択肢の中から求人を提案してもらいたい、大手企業や人気企業への転職を検討しているという方は必ず登録しておきましょう。

CMでおなじみ!転職者満足度No1!
豊富な求人数に加えて、専任アドバイザーの手厚いサポートが強み

ポイント

  1. リクルートと並ぶ、実績豊富な国内最大級の転職エージェント
  2. 10万件を超える求人から、厳選して紹介を紹介してくれる数少ないエージェント
  3. リクルートが保有していない有名企業の求人に出会える可能性が高い

dodaに
相談する

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

ポイント

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

リクルートエージェントに
相談する

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

ポイント

  1. 新卒サイトの掲載社数No.1!若手層を採用したい企業とのコネクションが豊富
  2. 20代向けの全業界・職種の求人を網羅
  3. 若手層の転職サポート・アドバイスに強い!転職サポートの手厚さに定評あり!

マイナビエージェントに
相談する

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

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

年収600万〜1500万の優良求人を多数掲載している転職サイト

登録しておくだけでスカウト機能が使えるので、どんな企業からどんなスカウトが来るかで、気軽に自分の市場価値を確かめることができますよ。

ポイント

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

ビズリーチ(転職サイト)に
相談する

国内3位、高年収求人領域では国内No.1の転職エージェント
外資系企業やコンサル、管理職/専門職への転職サポートに強み

ポイント

  1. 年収600〜1500万円の高年収の非公開求人を大量に保有
  2. 30〜40代のマネジメント層や専門スキルを持った方向けの求人も多数
  3. 業界・職種別コンサルタントによるレベルの高いサポートを受けられる

JACリクルートメントに
相談する

女性におすすめの転職エージェント

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

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

ポイント

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

Type女性の転職エージェントに
相談する

この記事とあわせて読まれている記事 Related

おすすめ人気記事 Popular

運営会社

Axxis(アクシス)株式会社は「ヒトとITのチカラで働くすべての人を幸せにする。」という理念に基づきキャリア領域で複数のプロダクト・サービスを提供するHRテックカンパニーです。