←back to thread

Go is still not good

(blog.habets.se)
644 points ustad | 2 comments | | HN request time: 0.627s | source
Show context
Insanity ◴[] No.44986325[source]
I wrote a book on Go, so I'm biased. But when I started using Go more than a decado ago, it really felt like a breath of fresh air. It made coding _fun_ again, less boilerplate heavy than Java, simple enough to pick up, and performance was generally good.

There's no single 'best language', and it depends on what your use-cases are. But I'd say that for many typical backend tasks, Go is a choice you won't really regret, even if you have some gripes with the language.

replies(2): >>44988111 #>>45011640 #
munificent ◴[] No.44988111[source]
Often, when I have some home DIY or woodworking problem, I reach for my trusty Dremel:

* The Dremel is approachable: I don't have to worry about cutting off my hand with the jigsaw or set up a jig with the circular saw. I don't have to haul my workpiece out to the garage.

* The Dremel is simple: One slider for speed. Apply spinny bit to workpiece.

* The Dremel is fun: It fits comfortably in my hand. It's not super loud. I don't worry about hurting myself with it. It very satisfyingly shaves bits of stuff off things.

In so many respects, the Dremel is a great tool. But 90% of the time when I use it, it ends up taking my five times as long (but an enjoyable 5x!) and the end result is a wobbly scratchy mess. I curse myself for not spending the upfront willpower to use the right tool for the job.

I find myself doing this with all sorts of real and software tools: Over-optimizing for fun and ease-of-entry and forgetting the value of the end result and using the proper tool for the job.

I think of this as the "Dremel effect" and I try to be mindful of it when selecting tools.

replies(1): >>44988253 #
1. Insanity ◴[] No.44988253[source]
That's a fun analogy.

Most of my coding these days is definitely in the 'for fun' bucket given my current role. So I'd rather take 5x and have fun.

That said, I don't think Go is only fun, I think it's also a viable option for many backend projects where you'd traditionally have reached for Java / C#. And IMO, it sure beats the recent tendency of having JS/Python powering backend microservices.

replies(1): >>44990298 #
2. munificent ◴[] No.44990298[source]
Agreed that if Go is a Dremel (I'm not sure whether or not it is) then JS is, like, a rusty non-locking pocket knife.