1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

2025年にQiitaで流行した技術スタック30選アドベントカレンダー Go (Golang)

Last updated at Posted at 2025-12-20

はじめに

2025年11月10日、Go言語はオープンソースリリースから16周年を迎えました。2009年11月10日にGoogleから一般公開されたGoは、シンプルさ、スピード、信頼性という当初の理念を維持しながら、現代のソフトウェア開発における重要な選択肢として進化を続けています。

本記事では、2025年のGo言語における重要なアップデートと、エコシステムの発展について紹介します。

2025年の主要リリース

Go 1.24 (2025年2月リリース)

Go 1.24は2025年2月にリリースされ、Go 1.23から6ヶ月後の主要リリースとなりました。以下の新機能が追加されました。

ジェネリック型エイリアスの正式サポート

型エイリアスがパラメータ化可能となり、定義型と同様に扱えるようになりました。これにより、コードの柔軟性と再利用性が大幅に向上しました。

// ジェネリック型エイリアスの例
type List[T any] = []T
type StringList = List[string]

tool ディレクティブ

go.modファイル内でtoolディレクティブを使用して実行可能な依存関係を追跡できるようになりました。これにより、従来の「tools.go」ファイルを使った回避策が不要になりました。

// go.mod内での記述例
tool golang.org/x/tools/cmd/stringer
tool github.com/golangci/golangci-lint/cmd/golangci-lint

新しい-toolフラグとtoolメタパターンにより、ツールの管理が簡単になりました。

# すべてのツールをアップグレード
go get tool

# すべてのツールをインストール
go install tool

JSONビルド出力

go build、go install、go testコマンドに-jsonフラグが追加され、ビルド出力と失敗を構造化されたJSON形式で標準出力に報告できるようになりました。

FIPS 140-3準拠

Go 1.24はFIPS 140-3準拠を促進する新しいメカニズムを導入しました。Go cryptoモジュールは、標準ライブラリパッケージとして、承認されたアルゴリズムを透過的に実装できます。

Go 1.25 (2025年8月リリース)

Go 1.25は2025年8月12日にリリースされました。最新のGoリリースであるバージョン1.25は2025年8月に到着しました。

コンテナ対応GOMAXPROCS

GOMAXPROCSのデフォルト動作が変更され、Linuxではプロセスを含むcgroupのCPU帯域幅制限を考慮するようになりました。これにより、Kubernetesなどのコンテナ環境でのパフォーマンスが大幅に改善されました。

実験的ガベージコレクタ「Green Tea」

Go 1.25には新しい実験的ガベージコレクタ「Green Tea」が含まれています。小さなオブジェクトのマーキングとスキャンのパフォーマンスが、より良い局所性とCPUスケーラビリティによって向上します。実環境のプログラムでは、ガベージコレクションのオーバーヘッドが10〜40%削減されると期待されています。

testing/synctestパッケージ

Go 1.25では、診断ツールボックスに新しいツールであるフライトレコーディングが導入されました。testing/synctestパッケージはGo 1.24でGOEXPERIMENT=synctestの下で初めて利用可能になり、実験段階を卒業して一般提供されました。非同期コードのテストが大幅に簡素化されました。

実験的encoding/json/v2パッケージ

Go 1.25では、encoding/json/jsontext および encoding/json/v2パッケージの実験的サポートが導入されました。新しい実装は、多くのシナリオで既存のものよりも大幅に優れたパフォーマンスを発揮し、デコードが大幅に高速化されました。

go.mod ignore ディレクティブ

新しいignoreディレクティブにより、goコマンドが無視すべきディレクトリを指定できるようになりました。

// go.mod内での記述例
ignore testdata
ignore vendor/legacy

開発ツールの進化

GoLand 2025.3

GoLand 2025.3では、golangci-lintのサポート、Renameリファクタリングと静的解析の改善、toolchainディレクティブのスマートな処理、Go 1.24の完全サポートが導入されました。

リソースリーク検出

GoLand 2025.3では、リソースリーク解析が導入され、適切に閉じられていないファイル、接続、その他のリソースを実行前に検出できるようになりました。この新しいローカルインスペクションは、コードをリアルタイムで分析し、誤って開いたままになっているリソースを特定します。

golangci-lint fmt サポート

GoLandはgolangci-lint fmtをサポートし、リンターツールのバージョン2で導入された新しいフォーマットコマンドを使用できるようになりました。保存時に好みのフォーマッタを使用してコードをフォーマットでき、すべてがgolangci-lintを通じて設定されます。

Claude Agent統合

Claude AgentがGoLandにネイティブ統合された最初のサードパーティAIエージェントとなりました。マルチエージェント体験により、開発ワークフローに柔軟性と力がもたらされました。

golangci-lint

golangci-lintは、CI/CDパイプラインとローカル開発の両方で標準的なオールインワンリンターランナーとなりました。並列実行、キャッシングによる高速化、高度な設定が可能で、100以上のリンターがデフォルトで含まれています。

Goのエコシステムと採用状況

開発者コミュニティ

State of Developer Ecosystem Report 2025によると、全ソフトウェア開発者の11%が今後12ヶ月でGoの採用を計画しています。JetBrains Language Promise Indexでは、TypeScript、Rust、Pythonに次いで4位にランクされています。

主要な用途

Go開発者は通常、マイクロサービスを含むWebアプリケーションに取り組むWebバックエンド開発者、またはKubernetesやサーバーレスアーキテクチャなどのITインフラストラクチャプラットフォームを管理するDevOpsやサイトリライアビリティエンジニアのいずれかのカテゴリに分類されます。

人気フレームワークとライブラリ

標準ライブラリに加えて、以下のようなライブラリが広く使用されています。

  • Webフレームワーク: Gin、Echo、Fiber、Chi
  • gRPC: 高性能RPCフレームワーク
  • データベース: GORM(ORM)、sqlx
  • テスト: Testify、Gomock
  • CLI: Cobra、urfave/cli

Go Conference 2025

2025年9月27日、28日にGo Conference 2025が開催されました。定員450人のチケットが1週間も経たないうちに完売するほどの人気でした。

テーマは「sync.go」で、昨年の「一期一会」に続き、「繋がり」を重視したテーマが続いています。これは、直接顔を合わせて交流できるオフラインイベントならではの価値を伝えるものでした。

2025年のトピックス

range over func (Go 1.23で導入)

Go 1.23ではついにrange over funcが追加され、for ... rangeの構文に関数を指定できるようになりました。これは2025年最も大きな変更の一つと言えるでしょう。

// iterパッケージの使用例
func PrintNumbers(yield func(int) bool) {
    for i := 0; i < 10; i++ {
        if !yield(i) {
            return
        }
    }
}

// 使用例
for num := range PrintNumbers {
    fmt.Println(num)
}

セキュリティアップデート

2025年を通じて、Go 1.24とGo 1.25の両バージョンで定期的にセキュリティアップデートがリリースされました。go1.25.5(2025年12月2日リリース)には、crypto/x509パッケージへの2つのセキュリティ修正と、mimeおよびosパッケージのバグ修正が含まれています。

Goが選ばれる理由

シンプルさと可読性

Goは簡潔な構文、シンプルさ、可読性を重視し、キーワードを少なくしています。これにより、特に大規模なチームでの学習、保守、コードベースの作業が容易になります。

並行性とパフォーマンス

Goは軽量な並行性プリミティブであるgoroutineとchannelを通じて、優れた並行性サポートを提供します。これにより、多数のユーザーやリクエストを同時に処理できる高度にスケーラブルなアプリケーションの開発が可能です。

豊富な標準ライブラリ

Goは「バッテリー同梱」の哲学で設計されており、Go標準ライブラリは言語の最大の強みの一つで、通常はほとんどのニーズに十分です。

クラウドネイティブ開発

クラウドベース技術の導入以来、クラウドコンピューティングは企業の間で人気が高まっています。Goはクラウドネイティブアプリケーション開発に最適な言語として位置づけられており、Kubernetes、Docker、Prometheusなど、多くのCNCFプロジェクトがGoで書かれています。

今後の展望

Goチームは、AIによってもたらされる業界の地殻変動に対して、思慮深く妥協のない姿勢で問題と機会に取り組んでいます。堅牢なAI統合、製品、エージェント、インフラストラクチャの構築に、Goのプロダクション対応アプローチをもたらすことに取り組んでいます。

Goの次の10年は、WebサーバーとAPIだけではありません。エコシステムは、AIインフラストラクチャ、データストリーミング、エッジコンピューティングなど、パフォーマンス、並行性、シンプルさが最も重要な分野に拡大しています。

まとめ

2025年、Goは16周年を迎え、その成熟度と安定性を示しました。Go 1.24とGo 1.25のリリースにより、tool ディレクティブ、コンテナ対応GOMAXPROCS、実験的な新しいガベージコレクタなど、開発者の生産性を向上させる多くの機能が追加されました。

開発ツールの進化、活発なコミュニティ、そして継続的な改善により、Goは現代のソフトウェア開発における重要な選択肢であり続けています。シンプルさ、パフォーマンス、信頼性というGoの核となる価値観は、今後も維持されながら、新しい技術トレンドに対応していくでしょう。

参考リンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?