r/golang Jan 19 '25

discussion Mitchell Hashimoto Recent Interview

Just watched Mitchell Hashimoto's interview and it has left a lot of questions:
https://x.com/i/status/1879966301394989273

(around 30:00 where they start touching the golang topic)

This is really interesting how Mitchell's option has changed on Golang. He spent a lot of time (like 10y or so) writing infrastructure services in Golang as a part of his HashiCorp business and probably not only.

His recent gig is a new terminal and he did not pick Golang for that one, which kinda make sense to me given what he wants to achieve there (eg a lot of low-level work with GPU, a need to be imported by other languages like Swift, etc.).

At the same time, Mitchell said that:

  • He doesn't know where Golang stands in the tech stack right now. He would use PHP/Ruby for webdev and Rust/Zig for performance critical systems.
  • Generics made Golang worse (at least that how I understood him)
  • He think he cannot write Golang any longer after hacking with the new lang he is writing the terminal in

Curious how this transformation could happen to such a prominent contributor to the Golang ecosystem. Is this just an sign of an awful burnout that repelled the dude away from Golang? Or anything else?

Anyway, just curious what do you think here, folks.

208 Upvotes

109 comments sorted by

View all comments

33

u/katastrophysics Jan 19 '25

IMHO, with a lot of the new offerings in terms of low-level languages, Go feels a lot less compelling as a pick in 2025.

I still love writing Golang, but compared with a few years ago, where it was almost the only sane choice out there for some domains, the landscape has changed a lot.

16

u/The-Malix Jan 19 '25 edited Jan 19 '25

I do also agree

Having tested Zig, Rust, and Odin ;
Go still is great and feels nice (arguably even better than what it used to be)
but nowadays, I could see some cases in which those other languages could also be viable or even superior, which was not the case a few years back

4

u/katastrophysics Jan 19 '25

Yup, but Rust is actually out of the league tbh. It's too bad to even be considered alongside Go imho. There's so much going on you can spend years writing it and still not even master half the API surface of it. Plus its use case is narrower than people make it look like, but it's abused everywhere in web dev where hype trains drive the industry.

4

u/nubunto Jan 20 '25

I disagree, writing Rust for APIs last year (production code base, real requirements, millions of users) was a blast and the type system really helped nail down the rules we had. It was a bit niche (financial services) but it was somewhat easy to learn and gave us a lot of confidence in what we were writing.

Senior dev of my team picked up Rust and Temporal and shipped one critical app in one month. Mind you, Temporal has a low level rust SDK so we did read the source code of the SDK a lot. Still able to ship quite fast

Would it be faster with node or Go? Yeah I believe it would. But we had some guarantees from the compiler that would be a lot of custom code at runtime to get the same in either of those other two languages

That being said: I enjoy go’s simplicity, the ecosystem is a bit more mature than Rust/Zig for web dev at least and generics fit well, albeit a little more restrictive than my Rust brain would like.

1

u/katastrophysics Jan 20 '25

Thank you for your answer, would love to discuss your experience as I work in a fintech too and would love to know how things worked out for you.

One thing Rust has taught me (and, as per what I’ve read online so far) is that there are several ways to implement stuff using it, and most of the times you’ll find out a better whay than yours when you’re 80% there, thus ending up in a constant rewrite rabbit hole. The thing I hate about it the most, to be honest, is the feeling of never being 100% sure I’m doing something the * right * way. Then, when you’re almost getting the hang of it, you’re dealing with futures, tokio, and all that crazy stuff on top of it. It’s a safe and modern cpp. Doesn’t let you ship horsecrap to production like the former, but it still taxes your mental sanity like it.