今Go言語を採用する理由をなるべく定量的に考えてみる
はじめに
Go 言語はシンプルな言語仕様であることからキャッチアップコストが低く、コンパイラ言語であることから実行速度が速いなどメリットも多いです。また、近年では AI Coding も盛んに行われており、静的型付言語である Go 言語は相性も良さそうです。私の実務経験の長さとしては Go 言語が一番長いこと + 上記の理由でもし新規のプロジェクトのバックエンドリードをする場合は Go 言語を採用したいなと思っています(もちろん要件次第ですが)。しかし、そこでなんとなく採用したいなではなく、ある程度定量的な指標をもって言語選定理由を言えるようになりたいなと考えました。また、AI Coding に Go 言語は適していると考えているが、なんらかのベンチマークを参考にした時にそれは定量的に説明できるのかが気になりました。
そこで、今回は Go 言語を採用する理由を探してみようと思います(目的と手段の逆転)。
比較対象と評価基準
比較対象は Java, Python, Ruby, TypeScript, Rust らへんにします。
評価基準は下記の3つにします。
- AIによる開発効率向上率が高いか
- 単位時間あたりのスループット
- 市場の言語への興味
AIによる開発効率向上率が高いか
どのように定量的に表現するのか迷ったのですが、McEval というベンチマーク結果を用いることにしました。McEval はLLMの性能を測るベンチマークの1つですが、今回はLLMを固定し、1つのLLMでの言語ごとの差を見ることで言語ごとのAIによる開発効率の向上率を見ることとします。今回は GPT-4o-240513 のLLMに対してコードを生成するようなタスクに対してのベンチマークをみます。サンプルケースに対して生成されたコードに対してテストが通った割合をベンチマークとしているようです。
https://mceval.github.io/leaderboard.html による表から抜粋
| Go | Java | Python | Ruby | Rust | TypeScript |
|---|---|---|---|---|---|
| 0.62 | 0.811 | 0.76 | 0.64 | 0.83 | 0.56 |
数字だけで見ると全然Goの数値よくないですね。割と高いかなと思っていたTypeScriptも低いです。ちょっと理由はよくわからないですが、これだけ見るとJavaなどを使った方がAIによってコード生成をさせた時の手直し率などは低そうに見えます。あれ、こんなはずじゃなかった。
単位時間あたりのスループット
この指標だけで見るのは諸説あるかもしれませんが、単純な性能面だけをベンチマークを参考に見てみます。Tech Empower というサイトの単一クエリを投げた時のスループットを見てみます。
Tech Empowerのベンチマーク結果 による表から抜粋
| Go | Java | Python | Ruby | Rust | TypeScript |
|---|---|---|---|---|---|
| 432,423 | 205,876 | 166,904 | 72,897 | 1,270,151 | 214,177 |
Go 言語は Rustに次ぐスループットですね。これはイメージ通りです。
市場の言語への興味
こちらは少し角度が違いますが、採用のしやすさ的な観点で市場にいるエンジニアがどれだけその言語に興味があるかを見てみます。 2025 Stack Overflow Developer Survey ではある技術を使いたいと答えた人の割合と過去1年間に同じ技術を使用しており、今後も使い続けたい人の割合を出しています。
https://survey.stackoverflow.co/2025/technology#admired-and-desired から抜粋
| 評価項目 | Go | Java | Python | Ruby | Rust | TypeScript |
|---|---|---|---|---|---|---|
| 使いたい人の割合(%) | 56.5 | 41.8 | 56.4 | 44.3 | 72.4 | 58 |
| 今後も使い続けたい人の割合(%) | 23.4 | 15.8 | 39.3 | 5.1 | 29.2 | 31.9 |
| 上記2つの差分(%) | 33.1 | 26.0 | 17.1 | 39.2 | 43.2 | 26.1 |
Go言語を使いたい人の割合はPython, Rust, TypeScript に次いで4番目のようです。やはりRustに興味を持っている人は多いようですね。一方で続けたいと思っている人がそこまで多くないのは気になります。飛び抜けて興味を持たれている状態ではないものの、複数ある言語の中でもいまだ注目は高いようです。
まとめ
他の言語と比べても処理性能が高い、一定の市場からの興味を持たれているかつキャッチアップも比較的簡単なのでエンジニアを確保しやすいというのはある程度定量的に示せる明確なメリットだと感じました。一方でAI Codingは少なくとも今回の評価方法では特に有利ではないという結果になってしまい、ここは感覚とずれているので不思議に思っています。また時間があれば別の観点で調査してみたいですね。
Discussion