Go言語とは?メリットとデメリットをまとめました!

Go言語とは?メリットとデメリットをまとめました!

    この記事を書いた人
    末永雄大

    末永雄大

    新卒でリクルートエージェント(現リクルート)に入社。数百を超える企業の中途採用を支援。2012年アクシス(株)設立、代表取締役兼転職エージェントとして人材紹介サービスを展開しながら、年間数百人以上のキャリア相談に乗る。Youtubeチャンネル「末永雄大 / すべらない転職エージェント」の総再生回数は1,800万回以上。著書「成功する転職面接」「キャリアロジック
    詳細プロフィールはこちら

    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 AGENT

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

    マイナビIT AGENT

    おすすめポイント

    1. エンジニアがスキルアップできる求人多数
    2. 大手からベンチャー企業まで、コンサル、SIer、WEB系の幅広い求人を保有
    3. 人気の社内SE求人も多数!働き方に合わせた多彩な求人アリ

    マイナビIT AGENTに
    相談する

    ウィルオブテック

    年収UPがデフォルト!ITエンジニアのキャリアアップに特化した転職エージェント

    ウィルオブテック

    おすすめポイント

    1. 専属2名体制による多角的な視点からのサポート!
    2. ハイクラス求人含めITエンジニア向けの求人が常時数千件以上!
    3. 年収UPを前提とした転職支援!過去に年収150万円以上UPした転職実績あり

    ウィルオブテックに
    相談する

    リクルートエージェント(IT)

    エンジニアの求人も豊富に保有している
    国内最大級の定番エージェント

    リクルートエージェント(IT)

    おすすめポイント

    1. エンジニア求人は業界最大の10万件以上!
    2. プログラマーや品質管理、社内SE、テクニカルサポートなど人気の職種を網羅
    3. 専門のアドバイザーチームがあり、IT・Web業界ならではのサポートが充実

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

    レバテックキャリア

    ITエンジニア経験者支援に特化した専門エージェント

    ※登録完了後、お電話にて転職活動のご状況をヒアリングさせて頂きます。
    ※エンジニア未経験者向けの求人は保有しておりません。

    レバテックキャリア

    おすすめポイント

    1. 保有求人7000件以上の約8割が年収600万円以上のハイクラスIT求人
    2. 大手IT系・Web系企業からスタートアップまで幅広く網羅
    3. WEB・アプリエンジニア、インフラエンジニア、PM、ITコン、SEなど多様な職種に対応

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

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

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

    リクルートエージェント

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

    リクルートエージェント

    おすすめポイント

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

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

    doda

    CMでおなじみ!顧客満足度トップクラス!
    豊富な求人数に加えて、専任アドバイザーの手厚いサポートが強み

    doda

    おすすめポイント

    1. リクルートと並ぶ、実績豊富な国内最大級の転職エージェント
    2. 20万件以上(2023年3月時点、非公開求人を含む)の求人から、厳選して紹介をしてくれる数少ないエージェント
    3. リクルートが保有していない有名企業の求人に出会える可能性が高い

    dodaに
    相談する

    マイナビエージェント

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

    マイナビエージェント

    おすすめポイント

    1. 新卒サイトNo.1のマイナビが運営。若手層を採用したい企業とのコネクションが豊富
    2. 営業、メーカー、金融、ITなどの転職支援に強み
    3. 20〜30代など若手層の転職サポート・アドバイスの手厚さに定評あり

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

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

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

    ビズリーチ(転職サイト)

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

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

    ビズリーチ(転職サイト)

    おすすめポイント

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

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

    JACリクルートメント

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

    JACリクルートメント

    おすすめポイント

    1. 年収600〜1500万円の高年収の非公開求人を大量に保有
    2. 30〜40代のマネジメント層や専門スキルを持った人向けの求人も多数
    3. 業界・職種別コンサルタントによるレベルの高いサポートを受けられる
    ※正しい連絡先・ご経歴を入力することで、より条件にマッチした求人のご紹介が可能になります

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

    line

    line

    人気の転職エージェント