A year or so ago I tinkered with Go, a language created and promoted by google. I liked it, but I just didn’t have any project to use it with, so it didn’t go anywhere.
Now I’ve been seriously considering updating my website with a more custom solution. I love wordpress and all, but it can be a really pain in the ass sometimes. Then I had an idea, why don’t I do my website in Go. That will give me a project to learn Go with.
So I’ve been reading the docs, looking at source code, and I gotta say. Some of the ideas of Go just seem right. Go looks like a scripting language (it’s not the prettiest), but it compiles. Not only that, but the developers of Go have made some decisions that remove common irritations. Like formatting code. Everyone has an opinion, but Go tosses that shit out the door and says: Not fucking here. I like that. The formatting of Go appears to be, to a large extent, a part of the language. It’s not so strictly enforced, but because Go can compile its own AST, the go fmt tool can reformat someone elses code to the established standard. This leads to one of the many great ideas with Go, go fix. When API changes are made, the go tool chain can help you update your code, looking for common patterns and rewriting them in place for you, or printing an error when the code is too complicated.
To me that’s a great idea.
Apparently more people are using Go every day, and its shaping up to be the little language that can. To me it feels like Go has the potential to unseat Java, which is a language I wouldn’t mind seeing die.
I don’t really like that it’s a Google product. Google is evil, they are like Weyland Utani, and I live in constant fear of them unleashing some kind of hellish Xenomorph at one of their Google Talks. That aside, in the modern day, I don’t really think a traditional small open source language could be competitive. Without Googles backing, and testing, no one would adopt.
There are some features missing from Go for sure, it’s not a complete swiss army knife. It’s not C++. But then again, do we really need so much C++? I get the feeling that 70-80% of all programs written in C++ didn’t actually have to be.
I hate C++ with a passion, it took C and made it ridiculously over complicated. And ugly.
Go is also ugly. But it’s the kind of ugly that grows on you as you read it. You start to even think that, as ugly as Go may be, it has a really good personality, and it’s actually quite fun to hang around with. It may not be as pretty as Ruby, or as flexible as C++, but it feels like the better of both of them. Just cute enough when the lights are low, and when it’s time to get hot and heavy, Go can do some serious acrobatics.
I really need to knock it off with the innuendos…