7 comments

[ 3.1 ms ] story [ 12.5 ms ] thread
Meta comment: the actual article title is “The RedMonk Programming Language Rankings: January 2021”. It’s not an article specifically about the stagnation and decline of Go, but a discussion of various languages. Hopefully the mods update the (IMO at least) inflammatory title; it’s currently “Go has been a language that is at best static and arguably on a decline path”.
All right, do let's get this straight:

- This is from MongoDB, which, in my book, is already a not-so-reputable organisation (ref. to Jepsen et. al.)

- The whole thing about Golang is basically a paragraph that puts a parallel between Java and Golang.

I'm not an expert in Go, but I've dabbled in both quite extensively. From a programming point of view, Go is better in that it requires WAAAAAAAAAY less boilerplate. Want an HTTP server ? Already in the stdlib. Want to do OAuth ? Already in the stdlib.

From a systems administrator's point of view, I do not need to worry AT ALL, about whether this version of JVM, or that parameter to have the GC not pause too much (although ZGC and the new bunch looks amazing), I just have a single (albeit so heavy) executable, I put it on the server, and it just works.

And that's the beauty of it IMHO. I don't think they're comparable. Maybe for software where you just want to send off some UML to people in India, Java is probably the way to go. But if you wanna write software fast, and deploy it fast, and have some static analysis bundled in, then Go is miles ahead of Java IMO.

Obligatory reminder that any rankings that rely on github's language detecion cannot really be trusted. For instance github can't really differentiate between C, C++ and Objective-C (one very simple reproduction case: if you name a variable or custom type "id" in your C or C++ code, it will very likely be detected as Objective-C). I also seem to remember that projects had been classified as Javascript just because they contained a lot of JSON files.
Go is a crap programming language with a good runtime.

- No generics

- No true buy-in on the idea of a structural typesystem

- No sumtypes

- An anti-intellectual fanbase

- Exceptionally painful error handling

- Zero ability to abstract anything out without relying on the reflection package which leads to brittle and slow software.

They didn't do everything wrong though.

- It's great that they have a spec (I wish it came with formal semantics, but still)

- It compiles quickly and is easy to analyze (so tooling w.r.t. LSP is great and exceptionally fast)

Anyway, I never find programming in Go fun, and I find Rob Pike to be obnoxious. OK, that last part might just be me projecting how obnoxious Go is onto him.

EDIT: Fixed formatting.

I liked Go for awhile but feel momentum stalled past couple of years.
I do think things like this report, TIOBE, etc, are worth doing. It's funny, though, when they start making dire conclusions like the one in the title.

Surely they are aware of how "dirty" this sort of data is, and that it doesn't model the real world. There's just a lot of code and activity that's not on the internet that likely dwarfs what is. You can get an indirect look at it via things like job postings, but even that's not an accurate bellwether.