Go言語でできることを初心者向けに解説

Go言語を学ぼうと思っています。

Googleが開発したプログラミング言語で、 比較的新しい部類に入る言語と聞きました。

具体的にはGo言語で何ができるのでしょうか。 あと、学習しやすいのかどうかも知りたいです。

今回はこのような疑問に答えていきます。

Go言語は2009年に開発された新しいプログラミング言語です。 処理の高速性やクラウドとの相性の良さから、 ここ数年で注目されるようになりました。 ですがGo言語の良さがまだあまり広がっていないようです。

そこでこの記事では、Go言語で何ができるのかや 特徴を入門者向けに解説していきます。

Go言語とは

Go

Go言語は2009年に米Google社が開発した コンパイル型のプログラミング言語です。 「Go」、「Go言語」、「Golang」といろいろ呼び方があり、 ここでは「Go言語」と呼びます。
10年ほどの歴史ですが、 プログラミング言語としては新しい部類に入り、 ここ数年で急速に人気が高まっています。

シンプルでわかりやすい構文が特徴で、 初心者でも習得しやすい言語です。 コードを記述する上での制約が多くあり、 コンパイル時に厳密にエラーチェックが行われます。 その分エラーが起こりにくく、安定した品質のソフトウェアができるため、 複数人数が関わる大きなプロジェクト用の開発言語にも向いています。

Go言語公式サイト

Go言語でできること

Webサービス・Webアプリケーション

Webサービス

Webサービス・Webアプリケーションの分野では、 主にRuby、PHP、 Javaといったプログラミング言語が使われています。 しかし最近ではWebアプリの開発にGo言語を採用する企業が増えています。
Go言語の高速な処理スピード、並行処理、シンプルな言語仕様、 複数開発に向いている等の特徴が評価され、 アメリカだけでなく日本の企業でもGo言語の評価が高まっています。

多くの人が見ているYoutubeもGo言語を使って開発。 他にはブログサービスのはてな、フリマアプリのメルカリ、 ストレージサービスのDropbox、ニュースアプリのグノシー などでもGo言語がサービスの一部で使用されています。

Webサーバー

サーバー環境

Go言語はWebアプリケーションだけでなく、 Webサーバーの構築もできます。
net/httpという標準パッケージを使うことで、 簡単にWebサーバーが構築可能です。 Webサービスだけなく、それが動作するWebサーバーまでも 構築できる汎用性の高さもGo言語の魅力と言えます。

オンラインゲームなどでサーバーが必要となる場面で サーバーが簡単に構築できるGo言語は便利です。 そして高速処理、並列処理に強い言語ですから、 これからGo言語を採用する会社が増えるのは容易に想像できます。

モバイルアプリケーション

Androidアプリ

スマホのアプリケーション開発用言語と言えば、 iOSならSwift、AndroidならJavaかKotlinが有名ですが、 Go言語でも開発できます。
「Go Mobile」というパッケージを使うことで、 iPhone、Android用のネイティブアプリケーションを 作成することが可能です。

サンプルとして Go言語の開発チーム作った電卓アプリ 「Ivy big number calculator」 が公開されています。
名前の通り大きな桁数でも計算できる電卓アプリで、 ソースも公開されてるので興味のある方は参考にしてみて下さい。

コマンドラインアプリケーション

コマンドライン

コマンドラインアプリケーションとは、 コマンドラインインターフェイス(CLI)で動作するアプリです。
コマンドラインインターフェイス(CLI)とは、 キーボードによってコマンドを打ち込む画面です。 いわゆる「黒い画面」のことで、 キャラクターユーザーインターフェイス(CUI)と同じ意味です。

Go言語はコマンドラインアプリケーションの作成にも向いています。 というのも、PythonやRubyなどのスクリプト言語で作成したアプリケーションの場合、 自分のマシン上にプログラムの実行環境(インタープリタ) を用意する必要があります。 その場合、それぞれのマシン上に用意した実行環境の違いによって、 互換性や依存関係の問題が発生する場合があります。

しかしGo言語の場合は、アプリケーションの実行ファイル(バイナリ) だけで動作するため、実行環境を用意する必要がありません。 Go言語が持つクロスコンパイル機能によって、それぞれのマシン環境に適した 実行ファイルを作成してくれます。 これにより互換性や依存関係の問題が発生することなく使用できます。

コマンドラインアプリケーションの例として 「Hugo」 という「静的サイトジェネレーター」があります。 Rubyなどの他言語で作った「静的サイトジェネレーター」と比較して、 超高速でサイト作成ができるため人気のあるツールです。

PaaS(Platform as a Service)環境でのGo言語を使った開発

現在、PaaS環境においてGo言語が活躍しています。

PaaS(パース)とは直訳すればサービスとしてのプラットフォームです。 少し言い換えると、インターネットを介してプラットフォームを提供する サービスです。 プラットフォームとはハードウェアからOS、ミドルウェアまで整っている サーバー環境のことを言います。

有名な3つのPaaSは次の通りで、いずれのPaaSもGo言語に対応しています。

  • Googleの「Google App Engine」
  • Amazonの「Amazon Web Services(AWS)」
  • Microsoftの「Microsoft Azure」

今は自前でサーバーを購入するよりも、 PaaSを利用してサービスを構築する企業が増えています。 PaaS環境でのGo言語を利用した案件も増えることが予想されます。

Go言語の特徴

シンプルでわかりやすい記述

Go言語は記述方法がシンプルで、 コードを見ても分かりやすいようになっています。 そのため、プログラミング初心者でもマスターしやすい言語です。

通常の言語なら機能を増やす方向へと進みがちですが、 Go言語は機能を削ることを意識しています。
例えば「繰り返し処理」を行う場合、 通常はfor文とwhile文があります。 ですがGo言語はfor文しかありません。 while文を削ることで、コードに統一性を持たせようとしています。

コードに統一性があれば、 複数人数で開発する大規模プロジェクトでも採用しやすい言語になります。 このようなスケーラビリティもGo言語は意識しています。

コンパイルと実行速度が高速

バイナリ

Go言語はコンパイル言語ですから、 その処理速度は速いのはもちろんですが、 コンパイル自体も速いのが特徴です。

処理スピードはC言語やC#、Rustといった高速言語とそれほど変わりなく、 PythonやJavaScriptなどのインタプリタ言語よりは圧倒的に速いと言えます。
(参考記事: 「Rust」言語はCよりも遅いのか、研究者がベンチマーク結果を解説)

さらにクロスコンパイルが可能なのも大きな特徴です。 クロスコンパイルとは、 開発しいているマシン環境とは異なる環境(OS)でも動作する 実行ファイル(バイナリ)を作成することです。
例えば、Windowsで開発・コンパイルした時に、MacやLinux用の 実行ファイル(バイナリ)も生成できます。

初心者におすすめできる

Go言語は2009年に開発された比較的新しいプログラミング言語ですが、 ここ数年で注目度が高まっています。

企業でも、サイバーエージェント、メルカリ、Dropbox、ドワンゴなど 多くの企業がシステムの一部でGo言語を採用し始めています。
天下のGoogleが開発している言語ですから、 今後大きく飛躍する可能性があります。

さらに、プログラミング言語別収入ランキングでは Go言語が第一位になっています。 Go言語エンジニアの需要はあるけど、 Go言語を使いこなせる人材が少ないので高収入が期待できます。

初心者にも理解しやすい言語仕様となっていますから、 これからプログラミングを始める初心者の方にも Go言語はおすすめできる言語です。

タイトルとURLをコピーしました