Tikhon Jelvis has just followed me, and I don’t want to annoy him by liking Go. 🙂
And I do like Go. But treating Golang as a general all-purpose language is silly and hype-y.
Golang is a low level, strictly typed language. It is almost as pleasant as a low level language can get: a lot of syntactic sugar has gone in to hide pointers and types from the developer, and to backdoor
void * through the empty interface. (The interface is the one thing about Golang that I still bristle at.)
But the low level stuff is all still there. And it makes more sense to deal with low level stuff in applications where you need to, than in naturally high-level or prototype-y code. It makes more sense in context where it is useful to have a compiled binary.
I’m using Go in messaging infrastructure. I’m happy to, it makes sense to use a low level language there, and I’d rather cut Golang code than C code. (25 years of cutting C code does not make it any more congenial.) But I’d hesitate to use Golang in natural language processing.
(I find Python much more abhorrent than Golang, but in natural language processing, the library (NLTK) is king. If only Ruby had gotten there first.)
Performance, from what I gather, got better: my CTO was very enthused about the recent upgrade to v1.8 in the compiler, and you don’t care about compiler upgrades in more mature languages. The maturity nevertheless has come along, it seems, compared to earlier versions. The code is still low-level looking, and not at all as readable as Ruby or *shudder* Python; but because of the sugar, it is easier to write and to read than C.