Go とは
Go は Google で開発されたプログラミング言語で、 Robert Griesemer、Rob Pike、Ken Thompson によって 2009 年にオープンソース プロジェクトとして発表されました。 それ以来、Go は、Docker、Kubernetes、Terraform など、他の有名なテクノロジーの開発に使用されています。 Go は、サーバー側のクラウド ソフトウェアで頻繁に使用される一方、非常に多様なユース ケースを持つ汎用言語でもあります。
Go は、簡潔で、無駄のない表現に優れています。 慣用的であることを目的に設計されているため、プログラマは、効率性と信頼性の高いコードを生産的に記述することができます。 Go で作成されたプログラムは、Linux や macOS などの Unix システムに加え、Windows でも実行できます。 Go は、独自のコンカレンシー メカニズムを備えているという点で注目に値するものであり、複数のコアを一度に使用できるという利点を生かしてプログラムを簡単に作成できます。 主として、厳密かつ静的に型指定された言語であり、コンパイル時に変数が認識されます。 ただし、動的に型指定された機能がいくつかあります。
TIOBE インデックスによれば、2009 年と 2016 年に Go は最も人気のプログラミング言語でした。 ピークは 2016 年でしたが、依然として高い評価を維持しています。 Stack Overflow が毎年実施している開発者アンケートによれば、Go は常に、最も好まれる言語の 1 つとして挙げられています。
Go は、C との類似点が多く、制御フロー ステートメント、基本データ型、ポインター、およびその他の要素など、C 構文の側面が継承されています。 とはいえ、この言語の構文とセマンティクスはどちらも C 以上です。 また、Java、C#、Python とも類似しています。 全般的な傾向として、Go は、他のプログラミング言語の機能を取り入れ、適応させている一方で、複雑さのほとんどを排除しています。 たとえば、Go では、オブジェクト指向 (OO) のプログラミング機能とデザイン パターンを使用できますが、OO のパラダイムが完全に実装されるわけではありません。 その理由については、このラーニング パスで後ほど説明します。
Go の原則
Go プログラミング言語の基本的なベネフィットは以下のとおりです。
- Go のライセンスは、100% オープンソースである。
- Go プログラムが単一の自己完結型バイナリにコンパイルするので、共有と分散を簡単に実行できる。
- Go は、さまざまなプラットフォームやオペレーティング システムに対するクロス コンパイルをサポートしています。
- Go では、言語を小規模でシンプルに保ち、より少ないコード行でより多くの処理を行うための取り組みが行われている。
- コンカレンシーは、ファーストクラスの市民であり、これを使うと、プログラマーマの労力は少なく、あらゆる関数を軽量スレッドとして実行できる。
- Go では、ガベージ コレクションなどの自動メモリ管理を実行できる。
- コンパイルと実行が高速である。
- Go では、コード全体を使用する必要があり、それ以外の場合は、エラーがスローされる。
- プロジェクト間の一貫性の維持に役立つ公式のフォーマットがある。
- Go には、大型で包括的な標準ライブラリが用意されており、多くのアプリケーションをサードパーティの依存関係を使用することなく構築できる。
- Go は、以前のリリースとの言語下位互換性を保証している。
Go のユース ケース
- システム レベルのアプリケーション
- Web アプリケーション
- クラウドネイティブ アプリケーション
- ユーティリティとコマンド ライン ツール
- 分散システム
- データベースの実装