Hacker News new | past | comments | ask | show | jobs | submit login

The last time I was on a team using Go, we ended up ditching it for these reasons.

We realized it took about as much specialization and wheel reinventing as Rust, which offered way better developer ergonomics in ways that mattered to us and wouldn’t panic over things that weren’t easy to predict or caught by the compiler.

There were still tons of trade offs, but it worked well for us. Go is cool but I still can’t seem to figure out where and when I’d prefer it most of all… Especially the poor error handling and lack of safety. These things really drive me crazy.




I prefer Go when I want more safety/performance than Python but less ceremony than Rust.


I think the latter point about "less ceremony" is extremely debatable especially on a larger project.


How does Go have more ceremony than Rust without a borrow checker, lifetime annotations and all?


I think the point is not that Rust has less ceremony (it certainly has more), but that you want the “ceremony” for larger scale projects.


This is why languages like Go offer automatic dynamic memory management, or more simply, garbage collection.

https://medium.com/safetycultureengineering/an-overview-of-m...


related, how does having no unit tests have more ceremony than a full test suite?

(and yet it will do so, as you try to find other ways to make your code safe to release)


Fair enough, there are certainly cases where Go is an awesome tool to use.


Doesn't Rust also have competing nonstandard ways to handle errors? Right now I think they recommend 3rd party libraries for it (anyhow, one other I don't remember), and those library recommendations have changed over time


I’ve been content with the error handling the language offers, but maybe there are scenarios where it isn’t sufficient that I haven’t encountered.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: