Video summary
What's new in Go
Main summary
Key takeaways
Summary of “What’s new in Go” (subtitles auto-generated)
Go’s positioning (productivity + reliability)
- Go was created to address the long-standing trade-off between:
- fast, productive dynamic languages, and
- complex but production-ready compiled languages.
- In the AI era, Go’s “human-readable for humans” framing is also presented as beneficial for:
- AI code generation, and
- verifiers (humans validating outputs).
- Go is described as “boring in the best way”—not just a language, but an end-to-end platform for software engineering with deterministic tooling across the SDLC.
Go releases / recent versions
- Major updates occur twice a year: February and August.
- Highlights include features in Go 1.25 and 1.26.
Tooling / modernization (Go Fix + Modernizers)
Rebuilt go fix for continuous modernization
- Rebuilt
go fixuses the Go analysis framework to understand code and apply deterministic edits. - The core engine is the “modernizer” framework, emphasizing correctness (updated code preserves original behavior).
- Includes 20+ modernizers to make code:
- more idiomatic
- more readable
- easier to maintain
Automatic API migration via “source-level inliner”
- Supports a directive like
gofix inlinerfor deprecated APIs. gofixreplaces calls to a deprecated function with the newer implementation across the codebase.- Behavior preservation is noted even with side effects, drawing from compiler insights.
Reported impact from Google
- Internal usage led to 18,000+ committed changes, modernizing a large older codebase.
Motivation tie-in
- Source code should be easy for machines to read/write/edit to enable refactoring.
- This is linked to improved tooling and modernizers operating at scale, including for AI-assisted code authoring.
Testing concurrency (sync test)
sync/testing/synctest general availability
- The package reached general availability in Go 1.25.
- It targets flakiness in concurrent tests caused by timeouts/sleep.
- Introduces a “bubble”: an isolated environment with a fake synthetic clock.
- Time advances deterministically when goroutines are blocked.
- Result claim: tests that waited ~5 seconds now finish in milliseconds, deterministically.
Small language feature in Go 1.26
Enhanced new built-in
- Addresses awkwardness with deep pointer-based structs common in data interchange formats (e.g., protobuf).
- Expands
newto support creating pointers from expressions, including:- basic data types, and
- function return values.
- Mentions helper patterns like
proto.string, and saysgo fixcan often replace such helpers with directnewusage.
Performance / production runtime improvements
Green tea garbage collector
- Introduced experimentally in Go 1.25, enabled by default in Go 1.26.
- Changes GC work units from scattered objects to contiguous memory pages.
- Designed to align better with modern hardware:
- reduces high-latency memory fetches
- enables vector acceleration
- Claimed improvements:
- ~10% reduction in GC CPU for most apps
- up to 50% reduction for complex memory layouts
- Also positioned as a foundation for optimizations like NUMA awareness.
More allocation on stack
- Runtime changes move more allocations from heap to stack (avoiding heap allocations reduces GC load).
- Benefits described:
- cheaper stack allocations
- reuse and improved cache locality
- faster memory access
Faster Go ↔ C boundary (CGo)
- In Go 1.26, CGo calls are ~30% faster.
- Presented as enabling more feasible high-performance workloads (examples: ML, gaming, GUI), shifting CGo from a “necessary workaround” to an “opportunity.”
First-class SIMD support
- Go 1.26 adds SIMD support for vectorized operations.
- Useful for parallelizing eligible loops.
- Example mentioned: sort performance relevant to some AI infrastructure.
- Go also claims it uses SIMD to speed up parts of the green tea GC.
AI integration (MCP SDK)
Model Context Protocol (MCP) SDK
- An MCP SDK was announced/launched.
- Described as an official SDK to let services provide context and tools to LLMs via a unified protocol.
- Used to build Go servers that expose more of the Go toolchain to agents and AI development tools.
- Mentions a prior prototype: “Go please” (Go language server) and expects more to follow.
Observability improvements (flight recorder)
New “flight recorder”
- Keeps tracing always on in a ring buffer.
- Flushes only when needed to reduce production overhead.
- Goal: obtain trace data without the expensive cost of always-on tracing.
Security enhancements
- Post-quantum cryptography
- Randomized heap-based addresses
- Improved FIPS 140 support
- Presented as proactive defenses to keep Go secure “for the next decade.”
Compatibility promise (key stability message)
- Reiterates the Go compatibility promise:
- Code written to the Go spec should compile and run correctly across future Go releases with no changes.
go fixis positioned as the mechanism if migrations are needed.
Main speakers / sources (from subtitles)
- Cameron — Product Lead for Go at Google
- Mark — Developer Relations Lead for Go at Google