Emerging
May 28, 20261
50%
Go Programming Language Proposes Support for Generic Methods
Go is proposing to add support for generic methods, allowing type parameters on concrete methods for the first time. The change represents a shift from the language's historical stance, driven by recognition that generic methods are valuable for code organization and readability even when not used to implement interfaces.
Quick Facts
Who
Go programming language team
What
Proposal to add generic methods to Go
When
2026-05-28
Where
Go programming language
- Proposal to add generic methods to Go
- Allow type parameters on concrete method declarations
- Distinguish generic concrete methods from generic interface methods
- Decouple generic method support from interface implementation requirements
- Go programming language team
The Go programming language is considering a significant change to its type system by adding support for generic methods, according to a proposal that represents a shift in the language's historical position. Previously, Go allowed generic functions but prohibited type parameters on concrete methods, primarily due to concerns about implementing generic interface methods. However, a new proposal argues that generic concrete methods are useful independent of their role in interfaces.
The proposal distinguishes between concrete methods (non-interface methods with receivers) and interface methods (method signatures within interfaces). Currently, while functions can declare new type parameters, concrete methods cannot, though they may use type parameters from their receiver type. This limitation has been a long-standing frustration for Go users, with multiple proposals on the issue tracker garnering significant community support, including issue #49085 filed in October 2021 with over 900 positive emoji reactions and issue #50981 from February 2022.
The core argument for the change centers on recognizing that methods serve purposes beyond implementing interfaces. Methods provide organizational benefits for code structure and offer syntactic advantages, such as enabling readable left-to-right chaining in expressions like x.a().b().c() rather than nested function calls. The proposal suggests that generic concrete methods should be treated as generic functions with receivers, and that such methods need not implement interface methods since interfaces syntactically cannot include parameterized methods.
This represents a notable reconsideration of Go's design philosophy, as the language's FAQ previously stated that "we do not anticipate that Go will ever add generic methods." The proposal acknowledges that the original Type Parameters Proposal considered this alternative view but rejected it at the time. By decoupling the concept of generic concrete methods from generic interface methods, the Go team appears to have found a path forward that addresses long-standing community requests while maintaining the language's core design principles around interface implementation.
Topics
Why This Matters
This proposal directly addresses a long-standing pain point for Go developers—over 900 community members have upvoted related issues since 2021. Adding generic methods would improve code organization and readability by enabling method chaining and better syntactic structure. For teams using Go, this change could reduce boilerplate code and make complex generic logic more maintainable, potentially accelerating adoption of Go for data-intensive and framework development tasks.
Timeline & Sources
May 28, 2026
WireGo team publishes proposal for generic methods support