Go is like snakes in that some divine creator decided that unlike all the other animals, you don’t need legs, because legs are hard to make and they keep you down anyway. You can do everything legged creatures can do just fine by bending and twisting in the right ways, and anyone who suggests legs could be useful is a fool who doesn’t understand what they’re talking about. Sometimes, after the complains of many snakes, the creator buckles and gives you the ability to grow legs, which are still completely useless despite all of the noise and the decision not to include legs has always been the right one.
Like many snakes, Go also has some incorrect beliefs about how windows are supposed work, but like all other facets in life, they can squirm up against them as if there are no windows to worry about.
It got them back in 1.18. Not every project and library has upgraded to that yet but at least modern tools have generics.
Things were done the Go way, with specific implementations. You had maps, slices, and arrays, and those were all the generics in the language. Supplement the lack of generics by stuffing functions using generics into interfaces and then implementing those interfaces for every type you need to call the function on.
Go is like snakes in that some divine creator decided that unlike all the other animals, you don’t need legs, because legs are hard to make and they keep you down anyway. You can do everything legged creatures can do just fine by bending and twisting in the right ways, and anyone who suggests legs could be useful is a fool who doesn’t understand what they’re talking about. Sometimes, after the complains of many snakes, the creator buckles and gives you the ability to grow legs, which are still completely useless despite all of the noise and the decision not to include legs has always been the right one.
Like many snakes, Go also has some incorrect beliefs about how windows are supposed work, but like all other facets in life, they can squirm up against them as if there are no windows to worry about.
Didn’t it only recently get generics? How was stuff even done before then?
It got them back in 1.18. Not every project and library has upgraded to that yet but at least modern tools have generics.
Things were done the Go way, with specific implementations. You had maps, slices, and arrays, and those were all the generics in the language. Supplement the lack of generics by stuffing functions using generics into interfaces and then implementing those interfaces for every type you need to call the function on.
interface {}
- which is the equivalent of C/C++’void *
.Amen. I couldn’t have said it better.