【ごーげんご】

Go言語 とは?

💡 「シンプルさ」と「並行処理」を極めたGoogle生まれの言語
📌 このページのポイント
Go言語の特徴 Go (Golang) Google製言語 Goroutine 軽量スレッド 数千個を同時実行 Channel Goroutine間の 安全な通信路 シンプル構文 継承なし・例外なし 高速コンパイル Webサーバー CLI ツール マイクロサービス
Go言語の主な特徴
ひよこ ひよこ

なぜクラウドツールはGoで書かれてるの?

ペンギン先生 ペンギン先生

①シングルバイナリにコンパイルされるから配布が楽(依存ライブラリの同梱不要)、②クロスコンパイルが簡単(LinuxでもmacOSでも同じコードからバイナリ生成)、③goroutineで大量の同時接続を効率的に処理できる。DockerKubernetesTerraform、Hugo全部Goだよ

ひよこ ひよこ

goroutineって何?

ペンギン先生 ペンギン先生

Goの軽量スレッド。OSスレッドの数千分の1のメモリ(2KB〜)で作れて、go func()の一行で並行処理を開始できる。100万個のgoroutineを同時に動かすことも可能。channelという仕組みでgoroutine間のデータ通信も安全にできる。「並行処理が怖くない言語」がGoの大きな魅力だよ

ひよこ ひよこ

弱点はある?

ペンギン先生 ペンギン先生

ジェネリクスは2022年(Go 1.18)にやっと追加された歴史から、型の表現力がRustTypeScriptに比べて控えめ、②例外処理がなくerr != nilのチェックが冗長、③GUIアプリ開発には向かない。「シンプルさ」を重視する設計思想なので、機能が少ないのは意図的。その割り切りが好き嫌い分かれるよ

ひよこ ひよこ

どういう場面で選ぶ?

ペンギン先生 ペンギン先生

APIサーバー、CLIツール、マイクロサービス、ネットワークツールに最適。大量のHTTPリクエストを捌くWebバックエンドは得意分野。逆にデータ分析やAIならPythonフロントエンドならTypeScript、システムプログラミングならRustが適している。チームメンバーが新しい言語をすぐ書けるようになる生産性も強みだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Go」って出てきたら「Googleが作った、シンプルで速いプログラミング言語」と思えればだいたいOK!
📖 おまけ:英語の意味
「Go (Golang)」 = ゴー
💬 Go(行く)というシンプルな名前。検索しにくいのでGolangとも呼ばれるよ
← 用語集にもどる