v 1.27 expands generics to support methods

The keepers of the Go programming language on Wednesday released the latest version, v1.27, and with it come considerable advances in generics. In a nutshell, generics allow developers to write logic where data types are treated as variables, eliminating the need to rewrite (or copy and paste) a separate method for each different data type (int, string, floating point, etc.). It was "absolutely barbaric," noted one YouTube tutorial creator. Go introduced generics for both functions and custom data types in version 1.18, released in 2022.

The v1.27 release expands generics to support methods, which are basically just functions that are bound to a data type. These new generics will save a lot of typing, at least if the programmer has some chops.

Golang’s standard random number generator, for example, can produce either a 32-bit integer (int32), 64-bit integer (int64) or whatever integer size the CPU expects (int). Prior to v1.27’s generics, the developer would have to write a method separately to support each numerical data type they wanted to use. Beyond generics, v1.27 allows developers to more easily work with structs, which are composites that collect different data types within a single object. Now, they can set values for nested or embedded fields directly without specifying all the intermediate steps to reach them. This will save time when working with deeply nested structs. This release also gets smarter in its ability to infer data types from functions without the developer explicitly typing them out. Previously, Go required explicit type arguments whenever a generic function was passed into a slice literal, channel send, or type conversion.Save a keystroke, break a brainGo continues to evolve into a programming language capable of tackling tasks as sophisticated as building the new TypeScript language server, but some wonder if it’s losing its approachable charm along the way. Generics and these other time-saving features will come as a relief to the busy Gopher who grows weary of how much identical code they’re typing. But these language shortcuts also make the code on the screen more abstract, which has its own mental overhead. When Google engineers Rob Pike, Robert Griesemer, and Ken Thompson created Go, first released in 2009, they prioritized readability over writability. The designers “recognized that developers spend far more time reading existing code than they do typing it out,” wrote Google Group Product Manager Cameron Balahan and Google Cloud Chief Evangelist Richard Seroter in a blog post earlier this month.