←back to thread

Go is still not good

(blog.habets.se)
644 points ustad | 1 comments | | HN request time: 0s | source
Show context
tex0 ◴[] No.44983241[source]
If you don't like Go, then just let go. I hope nobody forces you to use it.

Some critique is definitely valid, but some of it just sounds like they didn't take the time to grasp the language. It's trade offs all the way. For example there is a lot I like about Rust, but still no my favorite language.

replies(8): >>44983309 #>>44983362 #>>44983365 #>>44983513 #>>44986094 #>>44986874 #>>44986954 #>>44987250 #
1. strix_varius ◴[] No.44987250[source]
This article was a well-thought-out one from someone who has obviously really used Go to build real things.

I quite like Go and use it when I can. However, I wish there were something like Go, without these issues. It's worth talking about that. For instance, I think most of these critiques are fair but I would quibble with a few:

1. Error scope: yes, this causes code review to be more complex than it needs to be. It's a place for subtle, unnecessary bugs.

2. Two types of nil: yes, this is super confusing.

3. It's not portable: Go isn't as portable as C89, but it's pretty damn portable. It's plenty portable to write a general-purpose pre-built CLI tool in, for instance, which is about my bar for "pragmatic portability."

4. Append ownership & other slice weirdness: yes.

5. Unenforced `defer`: yes, similar to `err`, this introduces subtle bugs that can only be overcome via documentation, careful review, and boilerplate handling.

6. Exceptions on top of err returns: yes.

7. utf-8: Hasn't bitten me, but I don't know how valid this critique is or isn't.

8. Memory use: imo GC is a selling-point of the language, not a detriment.