Griping about go
One of the things I appreciate about go is that many interfaces are defined in terms of readers, as opposed to passing large byte slices or strings around. So a TLS connection closes the network connection, but a gzip reader doesn’t close the file. The standard package way to deal with this seems to be to define a whole pile of private interfaces and toss arguments into casts until you get something you like.