【ごーげんご】

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とも呼ばれるよ
← 用語集にもどる