网页 综合 更新时间 2026-11-14 16:29:16

Go’s Sweet 16 - The Go Programming Language

自动蜘蛛 go.dev 正文约 5999 字
Common problems companies solve with Go
Stories about how and why companies use Go
How Go can help keep you secure by default
The official Go language specification
A complete introduction to building software with Go
Reference documentation for Go's standard library
Learn what's new in each Go release
Tips for writing clear, performant, and idiomatic Go code
Videos from prior events
Meet other local Go developers
Learn and network with Go developers from around the world
The Go project's official blog.
Get help and stay informed from Go
Austin Clements, for the Go team 14 November 2025
This past Monday, November 10th, we celebrated the 16th anniversary of Go’s open source release!
We released Go 1.24 in February and Go 1.25 in August, following our now well-established and dependable release cadence. Continuing our mission to build the most productive language platform for building production systems, these releases included new APIs for building robust and reliable software, significant advances in Go’s track record for building secure software, and some serious under-the-hood improvements. Meanwhile, no one can ignore the seismic shifts in our industry brought by generative AI. The Go team is applying its thoughtful and uncompromising mindset to the problems and opportunities of this dynamic space, working to bring Go’s production-ready approach to building robust AI integrations, products, agents, and infrastructure.
First released in Go 1.24 as an experiment and then graduated in Go 1.25, the new testing/synctest package significantly simplifies writing tests for concurrent, asynchronous code. Such code is particularly common in network services, and is traditionally very hard to test well. The synctest package works by virtualizing 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’s integrated approach to software development: behind an almost trivial API, the synctest package hides a deep integration with the Go runtime and other parts of the standard library.
This isn’t the only boost the testing package got over the past year. The new testing.B.Loop API is both easier to use than the original testing.B.N API and addresses many of the traditional—and often invisible!—pitfalls of writing Go benchmarks. The testing package also has new APIs that make it easy to cleanup in tests that use Context, and that make it easy to write to the test’s log.
Go and containerization grew up together and work great with each other. Go 1.25 launched container-aware scheduling, making this pairing even stronger. Without developers having to lift a finger, this transparently adjusts the parallelism of Go workloads running in containers, preventing CPU throttling that can impact tail latency and improving Go’s out-of-the-box production-readiness.
Go 1.25’s new flight recorder builds on our already powerful execution tracer, enabling deep insights into the dynamic behavior of production systems. While the execution tracer generally collected too much information to be practical in long-running production services, the flight recorder is like a little time machine, allowing a service to snapshot recent events in great detail after something has gone wrong.
Go continues to strengthen its commitment to secure software development, making significant strides in its native cryptography packages and evolving its standard library for enhanced safety.
Go ships with a full suite of native cryptography packages in the standard library, which reached two major milestones over the past year. A security audit conducted by independent security firm Trail of Bits yielded excellent results, with only a single low-severity finding. Furthermore, through a collaborative effort between the Go Security Team and Geomys, these packages achieved CAVP certification, paving the way for full FIPS 140-3 certification. This is a vital development for Go users in certain regulated environments. FIPS 140 compliance, previously a source of friction due to the need for unsupported solutions, will now be seamlessly integrated, addressing concerns related to safety, developer experience, functionality, release velocity, and compliance.
The Go standard library has continued to evolve to be safe by default and safe by design. For example, the os.Root API—added in Go 1.24—enables traversal-resistant file system access, effectively combating a class of vulnerabilities where an attacker could manipulate programs into accessing files intended to be inaccessible. Such vulnerabilities are notoriously challenging to address without underlying platform and operating system support, and the new os.Root API offers a straightforward, consistent, and portable solution.
In addition to user-visible changes, Go has made significant improvements under the hood over the past year.
For Go 1.24, we completely redesigned the map implementation, building on the latest and greatest ideas in hash table design. This change is completely transparent, and brings significant improvements to map performance, lower tail latency of map operations, and in some cases even significant memory wins.
Go 1.25 includes an experimental and significant advancement in Go’s garbage collector called Green Tea. Green Tea reduces garbage collection overhead in many applications by at least 10% and sometimes as much as 40%. It uses a novel algorithm designed for the capabilities and constraints of today’s hardware and opens up a new design space that we’re eagerly exploring. For example, in the forthcoming Go 1.26 release, Green Tea will achieve an additional 10% reduction in garbage collector overhead on hardware that supports AVX-512 vector instructions—something that would have been nigh impossible to take advantage of in the old algorithm. Green Tea will be enabled by default in Go 1.26; users need only upgrade
访问原文 返回搜索 https://go.dev/blog/16years
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。