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

Go言語(Golang)の特徴とは

2009年にGoogleが発表したプログラミング言語で、歴史は浅いのですが人気・需要が高まってきています。

人気と需要が高い理由は、シンプルで使いやすく初学者でも学習がしやすい事と、処理速度が速いことが挙げられます。

また、C言語の開発者Ken Thompson氏、UTF-8やUNIXの開発者Rob Pike氏、memcachedの開発者Brad Fitzpatrick氏など、伝説級のエンジニアによって開発されたという背景も人気の理由の1つです。

Go言語(Golang)の代表的な特徴を5つ紹介します。

1.シンプル

C言語やJavaと構文が似ているので、これらの言語を書ける人はよりスピーディにGo言語を習得が可能です。Go言語ではさらにシンプルで分かりやすい構文・文法となるように注意が払われています。

例えば、繰り返し構文はfor文しかなく、while文やdo/while文などはありません。表現方法を制限することで、コンパイルを高速化し、プログラマ毎の表記のばらつきを抑えることができます。

2.時代の流れに敏感

Go言語はクロスコンパイルや並列処理をサポートしています。例えばMacで開発しててもコンパイル時にOSとCPUアーキテクチャを指定するだけでLinux、Windows用の実行ファイルを作れます。

また、軽量スレッドを用いて処理を並行に実施し、同時に実行されているスレッド間でデータをやりとりするしくみが備わっています。

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

Go言語は2009年にリリースされた新しい言語ですが、開発を助ける環境が充実しています。

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

4.処理が速い

Go言語はシンプル構造がゆえに、実行時の処理速度はPythonやJavaと比べても単純に速いです。

ここで、google app engineのようなPaaS上で動作させる具体的な例を挙げると、一定時間のアクセス・処理がない場合は、余計なCPU等リソースを消費しないようにコンテナが停止します。

アクセスがあってコンテナを起動する際、例えばJavaの場合はJVMを起動するのに時間を要します。

Go言語の場合、クロスコンパイルができることからVM環境は不要のため、VM起動時間は0となって高速にレスポンスを返すことができます。

5.安全性が高い

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つ紹介します。

1.Generics(template)がない

Go言語にはGenericsがありません。JavaのGeneric TypesやC++のテンプレートで書けるようなことができません。

ただし、配列、mapはサポートされているのでJavaやC++で総称型を使うパターンの9割は解決できる課題です。これはセキュアなメモリ管理を達成するために切り捨てられた機能の1つです。

2.継承がない

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

3.例外処理がない

例外処理を書かないようにするというのが基本思想です。panic、recoverを使って例外処理と同様なことは実現できますが、気軽に使ってよいものではありません。

例外処理を書くと、例外やエラーが発生した際にコードが想定外の順序で実行されてしまったり、処理実行自体がスキップされて困ることがあります。

大規模なプロジェクトの中で例外処理を正しく扱うのは困難なため、例外がないことは必ずしもデメリットではありません。

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

Go言語は乱用するとプログラムを無意味に複雑にしてしまう機能が排除されています。経験の浅いエンジニアでも簡単に理解し、大きなシステムを構築するのに使えるようデザインされています。

ベテランからすると物足りなく感じたり、高度なテクニックが活かせない場合があります。

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

Go言語を使って自社開発をされている企業様より求人募集がきています。

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

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

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

ただ、キャリアアドバイザーの経験やスキルは人により異なるので、自分と相性の良いキャリアアドバイザーに当たるためには、複数の転職エージェントに登録することをおすすめです。

定番の大手エージェントの中から2〜3社、特化型のエージェントを1社程度登録し、キャリアアドバイザーに会ってみた上で、サポートを進めてもらうエージェントを選ぶのが良いでしょう。

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

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

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

※登録完了後、お電話にて転職活動のご状況をヒアリングさせて頂きます

ポイント

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

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

IT・Web・ゲーム業界に特化した転職エージェント。
求人企業と強いコネクションがあり、求人票では分からない企業情報も教えてもらえる人材紹介会社です。

ポイント

  1. IT・Web・ゲーム業界の非公開求人は約10,000件!(2019年12月時点)
  2. 新規事業・経営企画・クリエイター等のハイクラス求人を多数保有

ギークリーに
相談する

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

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

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

ポイント

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

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

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

ポイント

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

dodaに
相談する

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

ポイント

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

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

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

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

年収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テックカンパニーです。

人気の転職エージェント