Hacker Musings and OCD

I don’t like Go

I really don’t like Go. I mean, really, profoundly, strongly, whatever. I think it’s very bad and most of its proponents are so very, very wrong.

Here’s why.

I don’t write C programs. Go is often called things like “C for the 21st century”. Great! Cool! That’s awesome!

But I don’t write C programs. Why would I want a better C when I don’t need C to begin with?

To be sure: if I had to write a C program, I’d probably go straightaway to Go. And why not? It’s a better C, so picking it is obvious. I’d only pick C if the C program I needed to write is, like, a language interpreter or some embedded thing or something on a platform Go doesn’t exist on.

But I don’t have to write C programs. I get by just fine writing Python programs, and Javascript programs, and shell scripts, and whatever else random nonsense shows up in my TODO.

But fast, concurrent network servers! Go people are quick to point out. Yeah, yeah, yeah: I have a hand-motion for that. Your stupid app doesn’t have any users, and concurrency is not a simple magic incantation. You probably don’t even know where the bottlenecks in your app are, so your breathless yammering about concurrency is pointless. Blab about it at the next meetup; I don’t have time.

But strong typing!! Yeah, well. My life as a web programmer consists of ints and strings; I guess I am just lucky. Sometimes I group them into lists or maps, but really, ints and strings, dude. I don’t need typing enforced at compile-time for we date field of a web form.

Now, a quick point: I write a lot of intranet-type apps. They are for specific users and not exposed on the filthy internet. That means I rarely have to worry about fuzzing my stuff, malicious input, I can demand a specific browser if I want to employ some feature, etc. I have it good. If I couldn’t get away with all that, I’d be more in favor of strong typing.

And as long as we’re complaining about strong typing, point the second: I’ve been doing this long enough that I can spot a fad from a million miles away. 5 years ago we didn’t need strong typing, we just needed better tests and CI. Before that, we did (Java). Before that, we didn’t (Perl). And so on, and so on.

Go and strong-typing proponents are just another fad. Strong typing, like TDD and Agile and a zillion other programming methodologies, are great. Wonderful. Seen half a dozen come and go in my day (remember XP? We didn’t need tests OR strong typing back then!).

Telling me the only way to write correct programs is X is a big BFD from me. I suck, you suck, we all suck.

I could go on but dinner’s almost ready, so what better time than to end this little rant. I don’t like Go. The end.