Re:Ask HN: What's the big deal with Go (Golang)?
by cqiDFbfRUggaQph on Thursday October 12, 2023 @12:50AM
(#37853570)
As someone who has spent 9 years working on Go:
- Self managed thread pool, Go routines are transposed onto threads.
- Channels for thread synchronization. The Select block lets you efficiently block a routine until one of multiple channels return.
- Fast compile times, fast execution.
- Type safety and garbage collection.
- Modern types like slices. You only have to check for nils when you explicitly use pointers. len([]byte(nil)) doesn't panic.
- First class Unicode support.
- Best date/time library I've used (sorry Python but you need timezones).
- Builtin tooling for testing, benchmarking, standard formatting and dependency management.
- Best package manager I've used. They force you do things their way but it's worth it IMO. All packages have a canonical URL that's explicitly referenced in code.
- Supply chain protection for dependencies.
- Dependencies are statically linked for easy distribution.
- Great standard library with no breaking changes over the last 10 years. (Pretty sure)
At the end of the day though, use whatever works for your style. C++ isn't going anywhere. But I am noticing a lot of people talking about the importance of type safety when Rust development was allowed in the Linux kernel.
At the end of the day though, use whatever works for your style. C++ isn't going anywhere. But I am noticing a lot of people talking about the importance of type safety when Rust development was allowed in the Linux kernel.