I have such a love-hate relationship with this language. I use it professionally every single day, and every single day there are moments when I think to myself "this could be solved much more elegantly in language X" or "I wish Go had this feature."
Then again I also can't deny that the lack of ""advanced"" features forces you to keep your code simple, which makes reading easier. So while I hate writing Go, I like reading unfamiliar Go code due to a distinct lack of magic. Go code always clearly spells out what it does.
“Love-hate relationship” were the exact words that I used when I used go professionally every day.
I could complain all day about things the language does obviously wrong, often in the name of simplicity. But after all my complaints I still admit it’s a very good choice for certain kinds of software and software companies.
I’m in the same boat. Every once in a while, I go back and look at my old Haskell, OCaml, and Go code, and I remember why I like Go. Generally, I can hop back into my old code easily. That’s not true with more advanced languages. I just can’t resist the urge to be clever when writing them. OCaml is still pretty nice, though. Not gonna lie.
Long time software engineer, just coming off 4 years of Kotlin into Go. Love-hate describes it for me. It's just not as much fun and feels sterile. I get the whole "just write the damn code" argument, but unfortunately for me I get fulfillment out of writing code, and Go isn't doing it for me. I've been around for a long time and experienced all the various language philosophies. The Go dogma is especially frustrating. Everything I say is met some automatic recycled response. No thanks
The first point cannot bother you after you've correctly realized your second point. The more empathy you have for your future-self or your peers, the clearer it becomes.
Another commenter described it quite succinctly; to paraphrase, Go isn't made for you, it's for all the other developers that will have to work with your code - including future you.
Then again I also can't deny that the lack of ""advanced"" features forces you to keep your code simple, which makes reading easier. So while I hate writing Go, I like reading unfamiliar Go code due to a distinct lack of magic. Go code always clearly spells out what it does.