The biggest problems come from the authors' fetishes for UNIX and standards. They clearly put a lot of thought into appealing to the "everything is a file"/"a bunch of independent tools that do one thing right"/cat-v types. It's a really dated attitude tbh.
As for generics, the Go authors say you don't need generics, and it's true. If you get creative, you can do what you want with interfaces. Generics would still be useful though, and you can see even in the standard library how many times functions are unnecessarily duplicated because there are no templates/generics. See the "flag" package for an atrocious example of this.