• トップ
  • ブログ一覧
  • 人気急上昇中のGo言語(Golang)って何だ?
  • 人気急上昇中のGo言語(Golang)って何だ?

    メディアチームメディアチーム
    2020.09.30

    エンジニアになろう!

    Go言語(Golang)って何?

    ミツオカミツオカ
    師匠!一個に聞きたいことが!
    にゃんこ師匠にゃんこ師匠
    お、なんじゃ改まって?
    ミツオカミツオカ
    給料が高くもらえるプログラミング言語って何ですか!?
    にゃんこ師匠にゃんこ師匠
    ストレートじゃな!でも、あるぞ…!その名も「Go言語」じゃ!
    ミツオカミツオカ
    Go言語!?

    Go 言語の人気が急上昇中!

    Netflix や Uber も注目する Go 言語

    シンプル記法で高速に実行できる言語として、近年人気急上昇の「Go 言語」。

    Netflix や Uber など勢いのある企業で導入されていることもあり、Go 言語に精通したエンジニアの需要が増えています。

    エンジニアのためのコミュニティである StackOverflow の調査では、「2019年にエンジニアが学びたいプログラミング言語ランキング」で、3位にランキングされました。

    Go 言語エンジニアは年収も高水準

    そして、求人検索のスタンバイの調べによると、2018年のプログラミング言語別年収ランキング堂々の1位を誇っています。

    さらに、注目すべきは日本ではなく、アメリカの年収です。

    大手求人会社の indeed によると、アメリカでの Go 言語エンジニアの平均年収は、約1,390万円と日本よりも高水準です。

    Go 言語ってどんなプログラミング言語?

    なぜ、Go 言語はこんなにも世界中で愛されているのでしょうか?

    今回は、Go 言語について、実際に Go 言語を触っているプログラマー目線でご紹介します。

    Go 言語の特徴

    左:ロバートグリマーズ(出典:Wikipedia) 中:ロブ・パイク(出典:Wikipedia) 右:ケン・トンプソン(出典:Wikipedia

    Go 言語は、2009年に Google の 「ロバート・グリーズマー」「ロブ・パイク」「ケン・トンプソン」らによって設計されました。

    featureImg2019.08.02デニス・リッチーはなぜ、C言語を作ったのか?C言語は、誰が何のために作ったの?現在使用されているプログラミング言語の中にも、C言語がベースになっているものが数多く...

    誕生して10年ほどの新しい言語であるにも関わらず、飛躍的に活躍の場を広げているのです。

    そんな優秀なプログラミング言語、Go 言語には以下のような特徴が挙げられます。

    シンプルな言語仕様

    シンプルで無駄のない言語にすることで、高速な実行を実現できます。

    また、Go 言語は、言語だけでなく機能もシンプル

    それらを複数組み合わせることで、拡張性の高い言語にしています。

    コンパイルの速さ

    Go 言語は、Java や C# と同じく、中間言語を通さず、直接機械語に翻訳します。

    メモリ領域の確保が不要で、仮想マシンを動かさずにコンパイルできるので、処理速度が速いことが特徴です。

    ガベージコレクション

    不要になったメモリ領域を自動的に解放することで、バグやメモリリークを回避します。

    にゃんこ師匠にゃんこ師匠
    主な特徴はこの3つじゃな!
    ミツオカミツオカ
    今聞いた段階でも、かなりよさげな言語ですね!かなり興味がわいてきました!

    Go 言語に向いていること

    出典:Wikipedia

    幅広い分野で使用できる Go 言語ですが、なかでも得意なのが「サーバサイドプログラム」です。

    専用ライブラリが豊富

    Go 言語は、ライブラリが非常に充実しています。

    1からプログラミングを書く必要がないため、開発効率が格段に向上します。

    また、ライブラリを使用することで、動作が軽くなるというメリットもあります。

    並列処理が得意

    さらに、Go 言語は、サーバサイドの並列プログラミングを動かす際にとても有用です。

    サーバサイドの処理は、稼働が活発な上に、重い処理を行います。

    重い処理を複数実行すると、順番に処理を行うので、時間がかかるのが難点ですね。

    その点、Go 言語には「Gorutine」という、並列処理を行う機能があります。

    これを使うことで、CPUの負担を気にせずに、処理にかかる時間を短縮することが可能です。

    ミツオカミツオカ
    今のところいい所ばかりですね!弱点はないのですか!?
    にゃんこ師匠にゃんこ師匠
    そうじゃな、魅力的なGo言語にも不向きなことはあるな!

    Go 言語に不向きなこと

    Go 言語を実際に使っていて不向きだと感じることは、ほとんど「ない」と言い切りたいほどですが…

    しかし、敢えて挙げるとすれば、「GUI アプリケーションの開発」です。

    描画ライブラリが少ない

    その理由として、描画するライブラリが少ないことが挙げられます。

    もちろん、「Open GL」などサードパーティ製のライブラリを使えば、GUI アプリケーションを作ることは可能です。

    しかし、そもそも Go 言語自体が、描画のための言語として最適ではありません

    API 開発はサーバサイドでやるべき

    開発において、どの言語が向き不向きかは、実際に言語に触れた人や、何を開発したいかにもよります。

    GUI アプリケーションの開発をしたいのであれば、「Java」や「Kotlin」、「Android SDK」など他の言語が適しているでしょう。

    やはり、Go 言語のメリットを活かすのであれば、サーバサイドでの API 開発をおすすめします。

    ミツオカミツオカ
    なるほど!描画に関しては少し不向きなのですね
    にゃんこ師匠にゃんこ師匠
    そうじゃな!では、開発において向き不向きがわかったところで、「どんなに人におすすめ」なのかを紹介しよう

    Go 言語はこんな人におすすめ!

    初心者はもちろん、サーバサイドエンジニア志望者も学ぶべき

    先述の通り、Go 言語は「シンプルな構文」や「マルチプラットフォームで動作する」といった特徴から、初心者の人でも十分習得可能です。

    また、これからサーバサイドエンジニアを目指す人は、ぜひ Go 言語を学ぶことをおすすめしたいです。

    マイクロサービスアーキテクチャに興味がある人にもおすすめ

    また、「マイクロサービスアーキテクチャ」に興味がある人にも Go 言語はおすすめです。

    個々の小さなサービスを柔軟に組み合わせ、拡張や変更ができるという点で、Go 言語はマイクロサービスアーキテクチャに親和性のある言語だと言えるでしょう。

    マイクロサービスアーキテクチャに関しての書籍と並行して Go 言語を学んでいくことで、実現形態や方法論について理解が深まると思います。

    ミツオカミツオカ
    初心者でも習得可能なのはうれしいですね!
    にゃんこ師匠にゃんこ師匠
    そうじゃな!回り道をせずにやりたいことができるのは強い

    さいごに

    Go 言語は、誕生してからまだ10年と非常に若い言語です。

    しかし、「スマートで高速な仕事ができる言語」として、世界のエンジニアたちから人気を集めています。

    日本はもちろん、特にアメリカでは、Go 言語エンジニアの年収はとても高く、まさに高嶺の花です。

    そんな未来あるプログラミング言語、ぜひあなたも学んでみてはいかがでしょうか!

    こちらの記事もオススメ!

    featureImg2020.08.08Go言語 特集知識編人気急上昇中のGo言語(Golang)って何だ?実装編Go言語(Golang)入門...
    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...

    さいごの一言

    にゃんこ師匠にゃんこ師匠
    どうじゃったかなGo言語は?
    ミツオカミツオカ
    最初は給料の高さに惹かれましたが、言語としての魅力もありますね!
    にゃんこ師匠にゃんこ師匠
    おー、興味が出たようで紹介した甲斐があったわい
    ミツオカミツオカ
    もちろん興味が出ました!というかすぐ始めます!!(炎)

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    メディアチーム
    メディアチーム
    Show more...

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background