Movatterモバイル変換


[0]ホーム

URL:


The Go Blog

Go’s Sweet 16

Austin Clements, for the Go team
14 November 2025

This past Monday, November 10th, we celebrated the 16th anniversary of Go’sopen sourcerelease!

We releasedGo 1.24 in February andGo 1.25 inAugust, following our now well-established and dependable releasecadence. Continuing our mission to build the most productive language platformfor building production systems, these releases included new APIs for buildingrobust and reliable software, significant advances in Go’s track record forbuilding secure software, and some serious under-the-hood improvements.Meanwhile, no one can ignore the seismic shifts in our industry brought bygenerative AI. The Go team is applying its thoughtful and uncompromising mindsetto the problems and opportunities of this dynamic space, working to bring Go’sproduction-ready approach to building robust AI integrations, products, agents,and infrastructure.

Core language and library improvements

First released in Go 1.24 as an experiment and then graduated in Go 1.25, thenewtesting/synctest packagesignificantly simplifies writing tests forconcurrent, asynchronouscode. Such code is particularly common in network services,and is traditionally very hard to test well. Thesynctest package works byvirtualizing time itself. It takes tests that used to be slow, flaky, or both,and makes them easy to rewrite into reliable and nearly instantaneous tests,often with just a couple extra lines of code. It’s also a great example of Go’sintegrated approach to software development: behind an almost trivial API, thesynctest package hides a deep integration with the Go runtime and other partsof the standard library.

This isn’t the only boost thetesting package got over the past year. The newtesting.B.Loop API is both easier to usethan the originaltesting.B.N API and addresses many of the traditional—andoften invisible!—pitfalls of writing Go benchmarks. Thetesting package also has new APIs thatmake it easy tocleanup in tests that useContext, and thatmake iteasy to write to the test’s log.

Go and containerization grew up together and work great with each other. Go 1.25launchedcontainer-aware scheduling, makingthis pairing even stronger. Without developers having to lift a finger, thistransparently adjusts the parallelism of Go workloads running in containers,preventing CPU throttling that can impact tail latency and improving Go’sout-of-the-box production-readiness.

Go 1.25’s newflight recorder builds on our alreadypowerful execution tracer, enabling deep insights into the dynamic behavior ofproduction systems. While the execution tracer generally collectedtoo muchinformation to be practical in long-running production services, the flightrecorder is like a little time machine, allowing a service to snapshot recentevents in great detailafter something has gone wrong.

Secure software development

Go continues to strengthen its commitment to secure software development, makingsignificant strides in its native cryptography packages and evolving itsstandard library for enhanced safety.

Go ships with a full suite of native cryptography packages in the standardlibrary, which reached two major milestones over the past year. A securityaudit conducted by independent security firmTrail ofBits yieldedexcellentresults, with only a single low-severity finding.Furthermore, through a collaborative effort between the Go Security Team andGeomys, these packages achieved CAVP certification,paving the way forfull FIPS 140-3 certification. This is avital development for Go users in certain regulated environments. FIPS 140compliance, previously a source of friction due to the need for unsupportedsolutions, will now be seamlessly integrated, addressing concerns related tosafety, developer experience, functionality, release velocity, and compliance.

The Go standard library has continued to evolve to besafe by default andsafe by design. For example, theos.RootAPI—added in Go 1.24—enablestraversal-resistant file systemaccess, effectively combating a class of vulnerabilities where anattacker could manipulate programs into accessing files intended to beinaccessible. Such vulnerabilities are notoriously challenging to addresswithout underlying platform and operating system support, and the newos.Root API offers a straightforward,consistent, and portable solution.

Under-the-hood improvements

In addition to user-visible changes, Go has made significant improvements underthe hood over the past year.

For Go 1.24, we completelyredesigned themapimplementation, building on the latest and greatest ideas inhash table design. This change is completely transparent, and brings significantimprovements tomap performance, lower tail latency ofmap operations, andin some cases even significant memory wins.

Go 1.25 includes an experimental and significant advancement in Go’s garbagecollector calledGreen Tea. Green Tea reduces garbagecollection overhead in many applications by at least 10% and sometimes as muchas 40%. It uses a novel algorithm designed for the capabilities and constraintsof today’s hardware and opens up a new design space that we’re eagerlyexploring. For example, in the forthcoming Go 1.26 release, Green Tea willachieve an additional 10% reduction in garbage collector overhead on hardwarethat supports AVX-512 vector instructions—something that would have been nighimpossible to take advantage of in the old algorithm. Green Tea will be enabledby default in Go 1.26; users need only upgrade their Go version to benefit.

Furthering the software development stack

Go is about far more than the language and standard library. It’s a softwaredevelopment platform, and over the past year, we’ve also made four regularreleases of thegopls language server, and have formed partnerships tosupport emerging new frameworks for agentic applications.

Gopls provides Go support to VS Code and other LSP-powered editors and IDEs.Every release sees a litany of features and improvements to the experience ofreading and writing Go code (see thev0.17.0,v0.18.0,v0.19.0, andv0.20.0 release notes for full details, or our newgopls feature documentation!). Some highlights include manynew and enhanced analyzers to help developers write more idiomatic and robust Gocode; refactoring support for variable extraction, variable inlining, and JSONstruct tags; and anexperimental built-in server for theModel Context Protocol (MCP) that exposes a subset of gopls’ functionality to AIassistants in the form of MCP tools.

With gopls v0.18.0, we began exploringautomatic code modernizers. As Goevolves, every release brings new capabilities and new idioms; new and betterways to do things that Go programmers have been finding other ways to do. Gostands by itscompatibility promise—the old way will continueto work in perpetuity—but nevertheless this creates a bifurcation between oldidioms and new idioms. Modernizers are static analysis tools that recognize oldidioms and suggest faster, more readable, more secure, moremodernreplacements, and do so with push-button reliability. Whatgofmt did forstylistic consistency, we hope modernizers can do for idiomaticconsistency. We’ve integrated modernizers as IDE suggestions, where they canhelp developers not only maintain more consistent coding standards, but where webelieve they will help developers discover new features and keep up with thestate of the art. We believe modernizers can also help AI coding assistants keepup with the state of the art and combat their proclivity to reinforce outdatedknowledge of the Go language, APIs, and idioms. The upcoming Go 1.26 releasewill include a total overhaul of the long-dormantgo fix command to make itapply the full suite of modernizers in bulk, a return to itspre-Go 1.0roots.

At the end of September, in collaboration withAnthropic and the Go community, we releasedv1.0.0 oftheofficial Go SDK for theModel Context Protocol (MCP). This SDKsupports both MCP clients and MCP servers, and underpins the new MCPfunctionality in gopls. Contributing this work in open source helps empowerother areas of the growing open source agentic ecosystem built around Go, suchas the recently releasedAgent Development Kit (ADK) forGo fromGoogle.ADK Go builds on the Go MCP SDK to provide an idiomatic framework for buildingmodular multi-agent applications and systems. The Go MCP SDK and ADK Godemonstrate how Go’s unique strengths in concurrency, performance, andreliability differentiate Go for production AI development and we are expectingmore AI workloads to be written in Go in the coming years.

Looking ahead

Go has an exciting year ahead of it.

We’re working on advancing developer productivity through the brand newgo fixcommand, deeper support for AI coding assistants, and ongoing improvements togopls and VS Code Go. General availability of the Green Tea garbage collector,native support for Single Instruction Multiple Data (SIMD) hardware features,and runtime and standard library support for writing code that scales evenbetter to massive multicore hardware will continue to align Go with modernhardware and improve production efficiency. We’re focusing on Go’s “productionstack” libraries and diagnostics, including a massive (and long in the making)upgrade toencoding/json, driven by Joe Tsai and people acrossthe Go community;leaked goroutineprofiling, contributed byUber’s Programming Systems team; and manyother improvements tonet/http,unicode, and other foundational packages.We’re working to provide well-lit paths for building with Go and AI, evolvingthe language platform with care for the evolving needs of today’s developers,and building tools and capabilities that help both human developers and AIassistants and systems alike.

On this 16th anniversary of Go’s open source release, we’re also looking to thefuture of the Go open source project itself. From itshumblebeginnings, Go has formed athriving contributor community. To continue to best meet the needs of ourever-expanding user base, especially in a time of upheaval in the softwareindustry, we’re working on ways to better scale Go’s developmentprocesses—without losing sight of Go’s fundamental principles—and more deeplyinvolve our wonderful contributor community.

Go would not be where it is today without our incredible user and contributorcommunities. We wish you all the best in the coming year!

Next article:Results from the 2025 Go Developer Survey
Previous article:The Green Tea Garbage Collector
Blog Index

go.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic.Learn more.

[8]ページ先頭

©2009-2026 Movatter.jp