Go言語を選ぶ理由

Go言語を選ぶ理由

最近,Go言語のここが好きだとかここが嫌いだとかいう記事をたくさんみたので,自分の思うGo言語の好きなところを思いつくだけ挙げてみました.

  • エラー処理の流れが追いやすい.
    • エラー発生個所がコードのみから明確に読み取れる.iferrifokがあればエラーが生じる可能性があって,適切に処理が必要な関数だとリファレンスを見ないでもわかる.
    • 深い階層でthrowされた例外をmain関数で急にcatchするようなことがない.必ずreturn errで追える.
  • コーディングスタイルのルール作成に極力注意を払わなくてよい.
    • 標準で最低限のツールが提供されている.go fmt, go vet
  • ロスコンパイルが楽.そもそもビルドシステムが単純.
  • だいたいは,GOOS=some_os GOARCH=some_arch go build .で済む.
  • interfaceによる実装の多層化とembeddedによる実装の共通化が分かれていることで,classより処理をシンプルに書ける場合が多い.
  • 後方互換性が大事にされている.
    • 異なるバージョンをインストールするのも簡単.
$ go install golang.org/dl/go1.17.1@latest
$ go1.17.1 download
$ go1.17.1 version
  • 配布時にバイナリを1つ渡せば済む.
  • IDEでなくても十分かける.
    • Vim/NeoVimで書きやすい.
    • goplsgo fmtgo vetなど.
  • 愚直に書くことがたいていベストになる.
    • foreachやwhileなど選ぶのを迷わなくてよい.
    • データ構造は考える必要がある.maporsliceなど.
  • 日本語が扱いやすい.
  • Gopherくんが可愛い.
  • 並列化が簡単.
  • テストが単純.
    • go test
  • 標準ライブラリが読みやすい.

おおむねこのあたりの項目が自分がGo言語を好んで1選んでいる理由だと思う.


  1. 好んで書いているといっても,何の言語で書いても違いがないときやGoが適しているソフトウェアを書くときに他の言語より優先して選択するだけです.