Webサービスや業務用システムを作るためのプログラミング言語は数多くあり、その言語ごとに特徴やメリットがあります。
昔から使われているもの、最近開発されて人気になったものなど様々ありますが、近年になって人気を集めている言語の一つにGo言語があります。
今回はGo言語についてその特徴や、各国での人気の状況などをご紹介していきます!
目次
1. Go言語とは?
Go言語はサーバー再度のプログラミング言語の一つで、2009年にGoogleで開発されました。Gopherと呼ばれるホリネズミの青いキャラクターがイメージキャラクターとして使われています。
Googleなどの多くのIT企業で課題になっていたソースコードの複雑さや肥大化を解消するべく、Robert GriesemerとRobert C. PikeRobert、Kenneth Lane Thompsonによって生み出されました。
2. Go言語に注目が集まっている?
近年の日本のエンジニア界隈では、Go言語が人気を獲得してきていると言われています。実際にどの程度注目されているのかGoogleトレンドを使って調べてみた結果が上記です。
Go言語が開発されたばかりの2009年10月から少しずつ検索数が増え、2016年あたりから急増しています。
2019年のStackOverflowのエンジニアへの調査でも「最も愛されている言語」の上位にGo言語がランクイン。
また、Go言語は年収が高いとも言われており、実際2018年のビズリーチによる日本国内の正社員を対象に行われたプログラミング言語ごとの年収ランキングでも、Go言語が平均600万円台で一位になっています。
GitHubの2020年1クォーターのデータを見ても、Go言語の使用率は4位。その使用率は右肩上がりで、これからも人気を獲得していくことが伺えます。
3. ベトナムのGo言語の使用状況は?
ベトナムにおいても、Go言語の認知度は高まってきています。
Topdevの調査では、ベトナムで人気のプログラミング言語調査においてGo言語は9位。
ベトナムの開発会社の特徴として、アウトソース先として開発を行なっているところが多く、必然的に言語もその会社のものに合わせることになります。そうすると、今までよく使われてきたPHPやJavaなどが多くなるものと考えられます。
機械学習熱の高まりもありPythonが上位にランクインしています。
今後よりコーディングの利便性を高めたい、パフォーマンスをあげたいと言った要望からGo言語に切り替えるところも出てくると思われますので、今後ベトナムでGo言語がより広まっていくことも十分に考えられますね。
ベトナムのGo言語コミュニティもあり、ノンラーを被りアオザイをきたGo言語のキャラクターを見ることができます。
4. Go言語の特徴は?
さて、Go言語が人気になっている理由をみていきましょう。Go言語は比較的新しい言語ということもあり、今までの言語であまりよくなかったところを改良した点が多いようです。
4-1. パフォーマンス、処理が早い
Go言語を採用する理由として最も多いのは「Go言語はパフォーマンスが良い」ではないでしょうか。コンパイルも早く、処理自体も高速でできるのでプロダクトのパフォーマンス改善が期待できます。
コンパイルが早いのはGo言語がプログラミング言語を直接機械語に変換することから実現されています。Javaなどでは、プログラミング言語を機械語に変換する際に中間言語を挟むステップがありますが、Goではそのステップがない分高速な処理が可能です。
Go言語はスケーラビリティも高く、処理を高速で行うためにパフォーマンスが悪くなるような処理は書くことを推奨されていません。そのため、技術的負債と言われるような、処理が遅かったり効率的ではないコードが生まれにくいと言われています。
とはいえ、プロダクトの成長などに伴ってリファクタリングをする必要性は大抵の場合出てきます。その時にも、Go言語の特徴により他の言語よりも比較的シンプルな構造でコードがかけるということもあり手間が大きくなりづらいのもメリットです。
4-2. 可読性が高いコードを書きやすい
Go言語はコードを書くときの自由度がそれほど高くはありません。それは、誰が書いても同じようなコードになりやすいということでもあります。
他の言語では、コードを書く自由度が高いために、エンジニアの癖が出やすく、場合によってはコードを読んでも何をしているかわかりづらい、解読に非常に時間がかかるということがあります。
Go言語ではGofmtと呼ぶコード整形のためのコマンドラインユーティリティがコンパイラに入っています。これがコードを統一のフォーマットに整形してくれるので、人によるコードのばらつきが出づらくなります。
4-3. 並列処理ができる
Go言語のメリットとして、並行処理が言語レベルで可能であるということもよく取り上げられます。
並行処理とは、コンピューターのCPUで複数の論理処理を同時に実行すること。
Go言語では、標準で並行処理が推奨されており、goroutineを使ったスレッドモデルを容易に使用できるようになっています。
4-4. 学習コストの低さ
すでに何かのプログラミング言語を習得している人にとって、Go言語を習得することはそれほど難しくないと言われています。
Go言語が非常にシンプルな構造であり複雑さが少ないので、PythonやC++ 、Javaで開発した経験がある人なら1ヶ月以内にGo言語が使えるようになるそうです。
5. Go言語が使われているサービス
Go言語が使われているサービスは多く、例えば私たちが最もよく使うサービスの一つであろうYoutubeもGo言語を採用しています。
日本国内でも多くの企業がGo言語を使用しています。今回は4例ご紹介します。
5-1. メルカリ
メルカリでもGo言語が取り入れられています。「メルカリ アッテ」や「メルペイ」でGo言語を使用しているとのこと。
Go言語の最大の魅力はシンプルさにあると語られており、Go言語はコンパイル時のエラーメッセージがわかりやすいため状況の把握がしやすいとも言われています。
これは開発者にとって非常に大事な点で、エラーメッセージがわかりにくいとバグの原因を探すのに非常に手間取り生産性も落ちるので、その点Go言語はエンジニアの生産を上げられやすい言語とも言えるかもしれません。
参考
https://mercan.mercari.com/articles/15164/
5-2. ピクシブ
ピクシブは、イラストなどを楽しむためのプラットフォームです。
ピクシブでは広告配信サーバーにおいてGo言語を使用しています。
パフォーマンスは良いものの、Go言語にはパッケージ管理が提供されていないため、外部のライブラリを使う時には慎重になる必要がありそうです。
参考:https://speakerdeck.com/catatsuy/golang-ads-deliver
5-3. Gunosy(グノシー)
グノシーはニュース配信、キュレーションメディアを提供しています。
グノシーのニュースアプリを使ったことがある人も多いのではないでしょうか?
グノシーでも広告配信システムにGo言語が使用されており、読者の興味関心に合わせた広告を配信するためにGo言語で処理を行なっています。
GnosyのテックブログではGoのカテゴリもあり、イベント参加なども積極的に行なっている様子が伺えます。
5-4. ぐるなび
みなさんもよく使うであろうぐるなびもGo言語を採用しています。
ユーザーの好みに合う飲食店の広告を表示する「属性バナー」と言う機能を実装するために使用しているそうで、技術選定時にPHPとGo言語で比較したところGo言語の方が1.5倍ほど処理が早いと言うことがわかったためGo言語を採用することになったとブログにて書かれています。
6. まとめ
モダンでシンプルなGo言語ですが、なかなか技術選定の時にはGoを扱えるエンジニアが少ないなどの理由で採用しづらいこともあります。
しかし、その特徴やメリットを考えると、一度はGo言語での開発を試してみるのがいいと思います!
7. Go言語での開発ならバイタリフィのオフショア開発で!!!
今や、オフショア開発をおこなっている企業はどんどん増えています。
日本国内ではオフショア開発に対して後ろ向きな先入観を持っている企業もいますが、開発ベンダーが国内であろうが海外であろうがはもう関係がなく、自社にあった選択する必要があります。
バイタリフィでは、弊社では2008年からのオフショア開発のナレッジを元に、仕様の理解を徹底することで安定した品質を担保しています。スマートフォンアプリ開発拠点としては、ベトナムでNo.1の実績を誇っております。
また、VRおよびAR、MRの開発も可能ですよ。日本にいる Unity スペシャリストとベトナムスタジオ側のエンジニア、 3D デザイナーの体制で、企画段階からデザイン、リリースまで一貫して対応することが可能な専門のラボチームもございます。
弊社では、国内開発とオフショア開発の両者に対応しているので、まずは気軽に開発のご相談をいただければ幸いです!【ご相談は無料です】
7-1. オンラインで現地視察ができる!「バーチャル視察会」
バイタリフィでは、日本にいながらベトナム現地の視察ができる「バーチャル視察会」を定期的に開催しています!
オフショア開発に少しでもご興味ありましたら是非お気軽にご参加ください!
▼詳細・お申込はこちら