---
title: What&#039;s new in Go (1.25 and 1.26)
tags:  #go #gdgokayama  
author: [Ryuji Iwata](https://image.docswell.com/user/qt-luigi)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/KE4WDD13J1.jpg?width=480
description: 2026年6月27日(土)に岡山で開催された「Google I/O Extended 2026 Okayama」での私の登壇資料「What&#039;s new in Go (1.25 and 1.26)」です。Google I/O 2026のGoの基調講演「What&#039;s New in Go」の公開動画を補足しながらGo紹介させて頂きました。
published: June 27, 26
canonical: https://image.docswell.com/s/qt-luigi/K3JJ9M-whats-new-in-go-io26
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/KE4WDD13J1.jpg)

What&#039;s new in Go (1.25 and 1.26)
Google I/O Extended 2026 Okayama
27 June 2026
Ryuji Iwata
Okayama, Japan

# Page. 2

![Page Image](https://bcdn.docswell.com/page/L71YZZGZJG.jpg)

Ryuji Iwata
X (Twitter) : @qt_luigi
Portfolio : sites.google.com/view/ryuji-iwata-portfolio

# Page. 3

![Page Image](https://bcdn.docswell.com/page/G7WG99K6E2.jpg)

What&#039;s new in Go (昨年もこのお二人が担当)
2026年5月19~20日に米国で開催された「Google I/O 2026」でのGoの基調講演。
What&#039;s new in
Go
Overview
Cloud
Go is “boring” in the best way: stable, reliable, and
built for scale. Explore what&#039;s new in Go 1.25 and
1.26, including the Green Tea garbage collector,
native vectorized instructions, and the code-
modernizers behind the “go fix” command. Whether
your focus is developing Al agents or traditional
microservices, discover how Go continues to
deliver industry-leading advancements that make it
the best choice for your mission-critical, high-
performance applications.
Speakers
Cameron Balahan
Group Product Manager
Marc Dougherty
Developer Relations Engineer
io.google/2026/explore/pa-keynote-17

# Page. 4

![Page Image](https://bcdn.docswell.com/page/4JZL99ZRE3.jpg)

セッション概要
Goは、安定性、信頼性、そして拡張性を兼ね備えた、まさに「退屈」な言語です。
Go 1.25と1.26の新機能、例えばGreen Teaガベージコレクター、ネイティブなベクトル化命令、そして「go fix」コマンドを支えるコードモダナイザーなどについて紹介。
AIエージェントの開発であれ、従来のマイクロサービスの開発であれ、Goがいかに業界をリードする進歩を続け、ミッションクリティカルな高性能アプリケーションにとって最適な選択肢となっているかをご確認ください。

# Page. 5

![Page Image](https://bcdn.docswell.com/page/YE6WKKZ1EV.jpg)

アジェンダ
セッションは4つのパートで構成。
1. オープニング
2. Goのコードの生産性の向上について
3. 本番環境でのコードのパフォーマンス向上について
4. クロージング (本スライドでは割愛: コミュニティへの感謝など)
本スライドの最Goには「リンク集」を用意してありますので、お見逃しなく。

# Page. 6

![Page Image](https://bcdn.docswell.com/page/GE5MPPWLE4.jpg)

オープニング

# Page. 7

![Page Image](https://bcdn.docswell.com/page/972966Q3JR.jpg)

約20年前にGoogleが直面した課題
生産性 (動的インタプリター型言語: PythonやJavaScript)
・スケーラビリティや信頼性で課題を抱えることが多い。
本番対応性 (静的型付けのコンパイル型言語: C++やJava)
・高い処理性能は得られるが複雑さが増す。
Goは、その両方を満たすために開発された。
GO
Productivity
+
Production Readiness

# Page. 8

![Page Image](https://bcdn.docswell.com/page/DJY499W87M.jpg)

AI時代にこの課題は重要なのか? → より一層重要となったに過ぎない
人に分かりやすい言語は、AIモデルにもその出力を検証する人にも、良いものである。
AIによってコードの生成量と本番環境への投入量が加速するにつれ、両者が安全で高性能かつ保守しやすいコードを簡単に書けることが、より重要になっている。
Humans and AI have surprisingly similar needs
Developers
More successful with
robust developer tools
Developer
Tools
AI Tools
More successful with
robust developer tools

# Page. 9

![Page Image](https://bcdn.docswell.com/page/V7NYLL99E8.jpg)

Goは良い意味で「退屈」だが
他のプログラミング言語と異なる点は「単なる言語ではない」こと。
Goはソフトウェアエンジニアリングのためのエンドツーエンドのプラットフォーム。
ソフトウェアエンジニアリングはチームで行われ、人間とAIを含む他者と協力して、時間とともに進化する耐久性のあるシステムを設計し、実装する行為。
プログラミングはあくまでもソフトウェアエンジニアリングの一部に過ぎない。
Code
Build
Test
Release
Monitor
Operate

# Page. 10

![Page Image](https://bcdn.docswell.com/page/YJ9P442373.jpg)

Goは、ソフトウェアエンジニアリングのためのプラットフォーム
Goは、ソフトウェア開発ライフサイクル全体にわたる決定論的なツールを備えた堅牢な
E2Eのプラットフォームを通じてソフトウェアエンジニアリング全体を支えている。
Easy
concurrency
Dependency
management
Vulnerability
monitoring
IDE
integrations
Simplicity &amp;
Readability
Rich standard
library
Module mirror
Checksum DB
Built-in
formatting
Built-in
profiling
Profile-guided
optimization
Static binaries
Source code
analysis
Memory
safe code
SBOM
generation
Compatibility
promise
Cross-compilation
Runtime
tracing
Built-in test
framework
Delve
debugger
Flight
recording
Self-tuning GC
Vulnerability
scanning
Dynamic data
race detector
Built-in fuzz
testing

# Page. 11

![Page Image](https://bcdn.docswell.com/page/GJ8DQQ5LJD.jpg)

Goが進化する中でも順守されている基本原則
Goでは、シンプルさ、パフォーマンス、セキュリティ、信頼性が最優先事項。
開発者が去った後でも何十年も保守可能なシステムを構築するための基盤となる原則。
Goは誕生から約20年経った今もなお、生産性と本番対応性において、業界をリードする重要な改善を続けている。
Simplicity
Performance
Security
Reliability

# Page. 12

![Page Image](https://bcdn.docswell.com/page/LJLMXXYQER.jpg)

Goのコードの生産性の向上について

# Page. 13

![Page Image](https://bcdn.docswell.com/page/47MYLLDK7W.jpg)

Goは2月と8月にメジャーアップデートをリリース (Go 1.25と1.26)
すべてのプログラミング言語は時間とともに進化し、進化するにつれて、古いコードは慣用性が失われ、読みにくくなり、保守が難しくなる。
新しい機能やパターンがトレーニングデータにあまり含まれていないため、AIが生成する新しいコードにも影響を与える可能性がある。

# Page. 14

![Page Image](https://bcdn.docswell.com/page/P7R9KK46E9.jpg)

go fix (Go 1.26)
これに対応すべくgo fixを再構築し、継続的なモダナイゼーションを可能に。
Goの分析フレームワークを活用してコードを深く理解し、決定論的な変更を適用することで、最新の言語機能を活用したコードを生成する。
Legacy Code
func OldProcess(s []int) {
sort.Slice(s, func(i, j int) bool {
return s[i] &lt; s[j]
})
for i := 0; i &lt; len(s); i++ {
//process s[i]
}
}
Modern Go Code
func Process(s []int) {
slices.Sort(s)
for i, v := range s {
//process s[i]
}
}

# Page. 15

![Page Image](https://bcdn.docswell.com/page/PJXQLL2D7X.jpg)

この新しいエンジンの中心: モダナイザーフレームワーク
正確性を優先したコード変換を可能にし、更新されたコードが元の動作を維持することを保証。
go fixにおいては、
・コードの明瞭さと可読性を維持するための20種類以上のモダナイザーが既に搭載。
・ソースレベルのインライナー機能により、コードベースの進化にも対応。
Dozens of modernizers
available and more
coming soon
Overview
Analyzer appendclipped
Analyzer bloop
Analyzer any
Analyzer errorsastype
Analyzer fmtappendf
Analyzer forvar
Analyzer mapsloop
Analyzer minmax
Analyzer newexpr
Analyzer omitzero
Analyzer plusbuild
Analyzer rangeint
Analyzer reflecttypefor
Analyzer slicescontains
Analyzer slicesdelete
Analyzer slicessort
Analyzer stditerators
Analyzer stringscut
Analyzer stringscutprefix
Analyzer stringsseq
Analyzer stringsbuilder
Analyzer testingcontext
Analyzer unsafefuncs
Analyzer waitgroup

# Page. 16

![Page Image](https://bcdn.docswell.com/page/3JK9LLMDJD.jpg)

//go:fix inline ディレクティブ
非推奨のAPIに //go:fix inline ディレクティブを追加するだけで、go fixはコードベース全体でその関数への呼び出しを新しい実装に置き換える。
・Goコンパイラの知見を活用して、副作用がある場合でもコードの元の動作を維持。
・API移行を迅速化し、非推奨メソッドを削除してコード全体をよりクリーンに保つ。
Library
// Deprecated: poor argument order
//go:fix inline
func Sub(x, y int) int{
return NewSub(y, x)
}
Calling code
// Before go fix:
n := Sub(2, 10)
// After go fix:
n := NewSub(10, 2)

# Page. 17

![Page Image](https://bcdn.docswell.com/page/LE3W33YPE5.jpg)

Google では
go fixの利用により、社内コードベース全体で18,000件以上の変更がコミットされ、最も古いGoコードベースのひとつに最新のGo機能が導入された。
18,000
committed changes across Google&#039;s internal code base

# Page. 18

![Page Image](https://bcdn.docswell.com/page/8EDK44537G.jpg)

Goの核となる理念のひとつ
「自動リファクタリングを支援するために、ソースコードは機械が読み書きしやすいべきである」
Goの読みやすい構文と標準化されたフォーマットにつながり、go fixやモダナイザーの開発にも引き続き影響を与えている。
AIによるコード作成を飛躍的に向上させ、Goが始まった頃には想像もできなかった規模で動作するモダナイザーのような高度なソースツールを実現できている (原点回帰)
Static type checking
Secure defaults
Stylistic consistency
Simple, readable code
Concurrency
without callbacks
Batteries-included
standard library

# Page. 19

![Page Image](https://bcdn.docswell.com/page/V7PKMMGPJ8.jpg)

testing/synctest パッケージ (Go 1.25)
Goで最も高く評価されているテスト機能のひとつ。
並行処理では
・操作が順不同で行われる可能性があるため本質的に複雑である。
・並行コードのテストも複雑で、タイムアウトやスリープ呼び出しに依存することが多く、不安定なテストにつながる可能性がある。

# Page. 20

![Page Image](https://bcdn.docswell.com/page/2JVV996VJQ.jpg)

バブル
ゴルーチンが擬似的な合成クロックを使用する隔離された環境。
・並行処理のテストを劇的に簡素化。
・すべてのゴルーチンがブロックされると時間が自動的に進む。
func TestWait(t *testing.T) {
synctest.Test(t, func(t *testing.T) {
go func() {
time.Sleep(3 * time.Second)
}()
time.Sleep(5 * time.Second)
})

# Page. 21

![Page Image](https://bcdn.docswell.com/page/5EGLZZN1JL.jpg)

testing/synctest パッケージを使うと
・以前はタイムアウトまで5秒間待機していたが、ミリ秒単位で決定論的かつ一貫して終了。
・並行テストにおけるイベントの順序調整が容易になり、すべてのゴルーチンがバブル終了までを確実に保証。

# Page. 22

![Page Image](https://bcdn.docswell.com/page/4JQYLLQN7P.jpg)

Goは意図的に退屈な言語である
言語自体に直接的な変更を加えることはほとんどない。
そのため、Go 1.26のコードはGo 1.0のコードとほぼ同じように見える。

# Page. 23

![Page Image](https://bcdn.docswell.com/page/K74WDDN3E1.jpg)

new() 組み込み関数の拡張 (Go 1.26)
言語自体への小さな変更であるが、非常に大きな影響を与えている。
Goユーザーは、protobufのようなデータ交換フォーマットでよく見られる、ポインターを多用する深い構造体を扱う際に、多少の不便さを感じていた。
基本的なデータ型や関数の戻り値を含む式からポインターを作成できるように拡張。
new(expr)
Expanded new() functionality

# Page. 24

![Page Image](https://bcdn.docswell.com/page/LJ1YZZ5ZEG.jpg)

例えば proto.String() など
一部のユーザーやライブラリーは、同じ結果を得るために独自のヘルパーメソッドを作成している。
モダナイザーのgo fixを使うと、これらのヘルパーメソッドを自動的に識別し、代わりにnew() 組み込み関数呼び出しに置き換えることができる。
The Old Way
ot := OtherThingBuilder()
req := &amp;service.ThingRequest{
Name: proto.String(&quot;string ptr&quot;),
Other: &amp;ot,
}
req := &amp;service.ThingRequest{
Name: new(&quot;string ptr&quot;),
Other: new(OtherThingBuilder()),
}

# Page. 25

![Page Image](https://bcdn.docswell.com/page/GJWG995672.jpg)

これらのツールは連携して
コードベースが常に最新の状態に保たれ、読みやすく、何より正確であることを保証。

# Page. 26

![Page Image](https://bcdn.docswell.com/page/4EZL99NR73.jpg)

本番環境でのコードのパフォーマンス向上について

# Page. 27

![Page Image](https://bcdn.docswell.com/page/Y76WKK817V.jpg)

Production Readiness
ここまでのGo 1.25と1.26の新機能は、生産性を向上させる上で非常に役立つ。
Goは生産性だけを追求するのではなく本番環境でのコードのパフォーマンスも重視。
GO
Productivity
+
Production Readiness

# Page. 28

![Page Image](https://bcdn.docswell.com/page/G75MPP9L74.jpg)

Goは現代のクラウドの基盤
Goは、Google規模の問題を解決するために開発され、Kubernetes、Docker、Terraformなど、世界的に有名なクラウド技術の多くがGoで記述されている。
・Goが常に本番環境への対応を重視してきたことの直接的な結果

# Page. 29

![Page Image](https://bcdn.docswell.com/page/9J296623ER.jpg)

Goの互換性保証
GoチームがGo仕様に基づいて記述されたコードは、今後のすべてのGoリリースにおいて変更なしで正しくコンパイルおよび実行されることを正式に保証。
“As always, the release
maintains the Go 1 promise of
compatibility. We expect almost
all Go programs to continue to
compile and run as before.”
Go Release Notes

# Page. 30

![Page Image](https://bcdn.docswell.com/page/DEY499Y8JM.jpg)

Goでは古いコードは負債ではなく資産
互換性保証により多くの機能がほとんど手間をかけずにバージョンアップごとに改善。
アップグレードして再コンパイルするだけで、システムはより優れたものになる。
他のエコシステムでは、コードが古くなると負債となるが、Goでは資産となる。
新しい機能やメリットを実現するためにコードを変更する必要がある場合は、go fixがそれを自動的に行う。
Upgrade
Recompile
System is better

# Page. 31

![Page Image](https://bcdn.docswell.com/page/VJNYLLP978.jpg)

Green Tea ガベージコレクター
今年のパフォーマンス面での最大に注目点で、Go 1.25で実験的に導入され、Go 1.26以降はデフォルトで有効。
従来のガベージコレクター設計とは大きく異なり、従来のアルゴリズムのハードウェアによる制約を超越している。

# Page. 32

![Page Image](https://bcdn.docswell.com/page/YE9P4433J3.jpg)

仕組みと効果
作業の基本単位を、個々の分散したオブジェクトから、ページと呼ばれる大きな連続したメモリブロックへと移行することで動作。
最新のハードウェア設計と連携して動作、高レイテンシーのメモリフェッチを最小限に抑え、ランタイムが非常に高いスループットのベクトルアクセラレーションを利用。
ほとんどのアプリでガベージコレクションのCPUコストが10%削減され、複雑なメモリレイアウトを持つアプリでは最大50%削減。しかもコードを一一行も変更する必要なし。

# Page. 33

![Page Image](https://bcdn.docswell.com/page/GE8DQQMLED.jpg)

Green Tea
最新のマルチコアシステムを効果的に活用するために設計されたランタイムの進化版。
最新のサーバーCPUアーキテクチャーにおけるNUMA対応など、これまで不可能だった透過的な最適化を実現する、まったく新しい基盤。
Non-uniform Memory Access (NUMA)

# Page. 34

![Page Image](https://bcdn.docswell.com/page/LELMXX3Q7R.jpg)

メモリ割り当てのランタイム最適化 (Go 1.25と1.26)
ヒープからスタックへのメモリ割り当てを大幅にシフトするランタイム最適化を導入。
スタック割り当てははるかにコストが低く、ガベージコレクターに負荷をかけない。
迅速な再利用が可能になりキャッシュの局所性が向上してメモリアクセスが高速化。
これもまた、透過的なメリットであり、コードを変更する必要がない。

# Page. 35

![Page Image](https://bcdn.docswell.com/page/4JMYLLMKJW.jpg)

cgoを最適化 (Go 1.26)
GoとCの間の遷移を最適化し、cgo呼び出しを30%高速化。
低レベルのシステムAPIや専用ハードウェアライブラリーに依存する高性能システムにとって、境界を越えるコストを大幅に削減し、機械学習、ゲーム、GUIといった分野で新たなユースケースが可能に。
必要不可欠なツールから、全く新しい種類のアプリを構築するための機会へと変化。

# Page. 36

![Page Image](https://bcdn.docswell.com/page/PJR9KKV679.jpg)

SIMDのファーストクラスサポートを導入 (Go 1.26)
最新のCPUはベクトル化された配列操作を実行したり、特定の種類ループを並列実行したりすることが可能に。
特定の種類AIインフラストラクチャーに必要なものを含め、多くの種類のパフォーマンス最適化に不可欠。
Green Tea ガベージコレクターの効率をさらに向上させるためにSIMDを使用。
128-bit
256-bit
512-bit

# Page. 37

![Page Image](https://bcdn.docswell.com/page/PEXQLLZDJX.jpg)

MCP SDK
AIにおいては、昨年モデルコンテキストプロトコル (MCP) の公式SDKをリリース。
統一されたプロトコルを通じて、サービスがLLMにコンテキストとツールを提供。
Goのシグネチャー機能を確実に活用し、AIアプリケーションにデータと機能を提供。
LLM
MCP
Language Server
Vulnerability
Database
Static Analyzers

# Page. 38

![Page Image](https://bcdn.docswell.com/page/3EK9LL8DED.jpg)

gopls
MCP SDKを使用して、Goツールチェーンのより多くの機能をエージェントやAI搭載開発ツールに公開するサーバーを構築。
言語サーバーであるgoplsで、プロトタイプのMCPサーバーを運用。今後1年間で、さらに多くの機能が追加される予定。
GO pls
Go Language Server

# Page. 39

![Page Image](https://bcdn.docswell.com/page/L73W332P75.jpg)

新しいフライトレコーダー (Go 1.25)
新しいフライトレコーダー (runtime/trace パッケージ) によって、オブザーバビリティをより使いやすく。
トレースはコストがかかる場合があるが、リングバッファで常にトレースを有効にし、必要なときにのみフラッシュすることで、最小限の運用オーバーヘッドで必要なデータを取得。

# Page. 40

![Page Image](https://bcdn.docswell.com/page/87DK44Z3JG.jpg)

セキュリティ
Goは、量子耐性暗号の拡張 (Go 1.25と1.26)、ランダム化されたヒートベースのアドレス (Go 1.26)、FIPS 140サポートの強化 (Go 1.25と1.26) により、今後10年間もセキュリティを維持。
こうした積極的なセキュリティ機能こそが、Goが常に時代の最先端を走り続け、最も重要なワークロードで引き続き利用できることを保証。

# Page. 41

![Page Image](https://bcdn.docswell.com/page/VJPKMMDPE8.jpg)

go.dev
さらに詳しい情報は、go.devのリリースノートを参照。
go.dev/doc/go1.25
go.dev/doc/go1.26
これらすべては、Goの生産性と本番環境への対応性を維持する取り組みの一環。
これに加えて、今後行う全ての変更でGoの互換性保証を守り続けることを約束。
Go 1.0との完全な後方互換性を維持しており、今後もその状態は変わらない。

# Page. 42

![Page Image](https://bcdn.docswell.com/page/2EVV991VEQ.jpg)

リンク集

# Page. 43

![Page Image](https://bcdn.docswell.com/page/57GLZZ21EL.jpg)

今回のオリジナル
What&#039;s new in Go
• Google I/O 2026: What&#039;s new in Go
io.google/2026/explore/pa-keynote-17
• Goの最新情報 - YouTube
www.youtube.com/watch?v=l4lneZYtjQg

# Page. 44

![Page Image](https://bcdn.docswell.com/page/4EQYLLPNJP.jpg)

実はもうひとつ、Goのセッションがワークショップでありました!
Build an AI agent app with Go ADK, Cloud Run, and Flutter
• Google I/O 2026: Build an AI agent app with Go ADK, Cloud Run, and Flutter
io.google/2026/explore/workshop-7
• Go ADK、Cloud Run、Flutterを使用してAIエージェントアプリを構築する - YouTube
www.youtube.com/watch?v=zuymRY4X0rg
• 👗 Flutter、ADK Go、Gemini を使用してバーチャル試着室と AI スタイリストを構築する (goo.gle/adkgo-flutter)
codelabs.developers.google.com/codelabs/fitting-room/instructions?hl=ja#0

# Page. 45

![Page Image](https://bcdn.docswell.com/page/KJ4WDDY371.jpg)

Thank you
Ryuji Iwata
Okayama, Japan
@qt_luigi

