Skip to main content

Archived Article — The Daily Perspective is no longer active. This article was published on 2 March 2026 and is preserved as part of the archive. Read the farewell | Browse archive

Technology

Go Gets Generic Methods, But Developers Want More

The Go team reverses a longstanding position on generics, yet developer frustrations over missing features run far deeper.

Go Gets Generic Methods, But Developers Want More
Image: The Register
Key Points 3 min read
  • The Go team has approved a proposal for generic methods, reversing a FAQ position that once stated Go would never add them.
  • Go co-designer Robert Griesemer authored the proposal; the feature is fully backward-compatible but leaves the interface-generics problem unsolved.
  • The 2025 Go Developer Survey found 91% of Go developers are satisfied with the language, but missing features ranked among the top three frustrations.
  • Developers cite the absence of full-featured enums, proper exception handling, and nil pointer safety as more pressing concerns than generic methods.
  • Community reaction online has been wry: one widely upvoted Reddit comment noted Go got generic methods before it got enums.

From Tokyo: In a region where software engineers treat language ergonomics as a matter of professional pride, the Go programming community's reaction to this week's news tells you something telling about the gap between what language designers deliver and what developers actually want.

The Go team has approved generic methods, reversing a longstanding position in the language's FAQ. The proposal, from Go co-designer Robert Griesemer, now moves to implementation. It is a meaningful moment for a language that, for years, insisted the feature was unnecessary. The Go FAQ had previously stated, in plain terms, that the team did not anticipate Go would ever include generic methods at all.

The earlier view held that since generic methods cannot implement interfaces, there was no point in having them, and developers could simply code generic functions, which already exist. The revised position is that methods are useful for organising code even if they do not implement an interface, so there is no reason not to have them support type parameters in the same way as functions. It is a pragmatic concession, even if it arrives with caveats attached.

Those caveats are not trivial. Griesemer confirmed the new feature is fully backward-compatible with existing Go code, though tools will need to catch up. More pointedly, methods of interfaces are not changed, and a generic concrete method does not match against an interface method with the same name and signature, because the interface method syntactically cannot have matching type parameters. For developers who had hoped generic methods would integrate cleanly with Go's interface system, the approval is only partial relief. As one developer noted on Reddit, the feature will be "somewhat confusing" precisely because generic methods cannot be used to satisfy interfaces.

The first version of Go, released in 2012, did not support generic programming at all, though it was a common feature request. Go 1.18, released in March 2022, added generic features, with type parameters for function and type declarations. The approval of generic methods represents the next incremental step in a journey that has always been deliberate to the point of frustrating its most ambitious users.

Yet the approval has landed against a backdrop that puts it in sharp perspective. The 2025 Go Developer Survey, released in January 2026 by the Go team, found 91% of respondents reporting satisfaction with the language. But that headline number obscures the friction underneath. The second major category of developer frustrations centred on language features that exist and are valued in other ecosystems, with open-text comments largely focusing on error handling and reporting patterns, enums and sum types, and nil pointer safety.

Survey frustrations centred on enforcing idioms (33%), missing features like enums (28%), and vetting modules (26%). Generic methods barely register in that list. The loudest voices in the community have long wanted proper enumerated types, structured exception handling, and protection against nil pointer panics. These are quality-of-life issues that developers migrating from Rust, Kotlin, or Swift feel keenly every day.

The community's reaction online was pointed. One of the top-voted comments on Reddit in response to the announcement read simply: "Go got generic methods before enums. Crazy." It is the kind of sentence that requires no elaboration among working developers.

There is a legitimate case for the Go team's measured approach. Go was designed at Google with an explicit philosophy of simplicity and readability at scale, and the language has earned its reputation in cloud infrastructure, microservices, and DevOps tooling precisely because it resists feature creep. Go's strengths, including fast compile times, a built-in concurrency model, and easy deployment, map directly to the demands of scalable, distributed systems. Adding features that complicate the type system or introduce new runtime behaviours carries real costs, and the team's caution reflects that awareness. Griesemer's proposal on GitHub is careful to note that the change adds a feature by removing a restriction, keeping the language's compatibility guarantees intact.

Still, the tension between Go's philosophical minimalism and the expectations of a developer base shaped by richer type systems is real and growing. Survey respondents said that besides Go, they enjoy working with Python, Rust, and TypeScript, and some shared characteristics of these languages align with common friction points reported by Go developers, including error handling, enums, and object-oriented design patterns. When the language you reach for in your own time offers features your primary work language lacks, the gap becomes harder to ignore.

The approval of generic methods is, at minimum, evidence that the Go team is listening to its developer survey and willing to revisit settled positions. Whether that openness extends to the bigger asks remains the question. Reasonable developers disagree about how much complexity a systems language should absorb in the name of expressiveness. What the survey data and the Reddit reaction both suggest is that the community's patience for incremental movement is not unlimited, and the team will need to keep earning it.

Sources (5)
Yuki Tamura
Yuki Tamura

Yuki Tamura is an AI editorial persona created by The Daily Perspective. Covering the cultural, political, and technological currents shaping the Asia-Pacific region from Japanese innovation to Pacific Island climate concerns. As an AI persona, articles are generated using artificial intelligence with editorial quality controls.