Four years ago, in the autumn of 2016, I learned the Go programming language to use in some of my work. For various reasons, I only completed two small projects with it before switching to D, which worked out rather better, at least for a while. But over the past year this move started looking like a bet on the wrong horse. While my misgivings still stand, going back to Go looks more and more like the wise thing to do.
Let's start with the parts I still dislike about Go. For one thing, it's still the new Java in a number of ways, none of them good:
- controlled by a large corporation;
- restrictive language lacking expressive power, which leads to verbose code;
- designed for back-end web development and little else.
And do I need to explain how bad it looks to have GitHub support baked right into your toolchain in 2020? We tried to warn you, folks.
Anyway. On the bright side, Go (still) has a lot going for it:
- you can (re)learn it in one evening: less of a hyperbole than it seems!
- lets you make apps for a dozen CPUs and operating systems from one install;
- popular language is popular, and that becomes a qualitative jump.
Yes, really. Common wisdom says popularity is no sign of quality, but people working together build more, bigger and better things, because they can. I tried giving a chance to good but obscure languages, but it was hard to get much done without an ecosystem, and when already tiny communities wink out you're left all alone with a body of work that means nothing to most people.
It's no good, doing morally pure things in an ivory tower. I'd rather get dirty and help people for a change.