16 ms·
Hey, thanks for the reply. That sounds really nice! I wonder, which aspects of the "Go" std lib are considered strong? Would you say it is more like .net where
by DarkNova6 2y ago
Hey, thanks for the reply. That sounds really nice!
I wonder, which aspects of the "Go" std lib are considered strong? Would you say it is more like .net where the std-lib also comes with framework-grade capabilities such as REST-endpoints and setting up applications?
Because in the classical sense of a library, I think Java is fantastic (collections, strings, NIO, HTTP 2.0, etc.). But it misses framework-level out-of-the-box solutions.
- metaltyphoon 2y agoNot STD comes close to .NET, IMO.
- alemanek 2y agoSo take this with a big mountain of salt as I am newer to Go and my experience with .Net is a bit dated but I do have 7 YoE with C#. The C# stdlib is larger and more batteries included for sure. But, it feels less focused than Go to me. Over its history it has supported a ton of different styles of programming. Whereas Go’s maintainers have been, at least so far, more obsessive on keeping the language small. As a result you get libraries and codebases that have a mix of legacy and modern flavors of .NET. That isn’t the fault of the language but more of its large history and wider scope. GoLang doesn’t have a rich UI library built in for example whereas .NET has 3 if I am remembering correctly. I like the focus of Go but C# is a great language and .NET is an excellent framework. Here are some things that I think Go does better though: - TLS and x509 stdlib is fantastic - Explicit error returns instead of Exception throwing - A developer culture around idiomatic Go. It’s subjective but it sets a tone for a single coding style. - Less “magic”. This is more of a sin of Java frameworks but .NET has lots of higher level abstractions the push lots of interactions behind the curtain. - tiny docker images and super fast startup. Here are some things I miss from C#: - really nice Enums - Better support for functional programming. - LINQ to objects - Annotations, specifically validation logic as annotations. - JSON handling is more straightforward .NET is super capable though. Nothing wrong with using it and it is much more broadly applicable than Go in my opinion. But, I like the ergonomics of Go and for backend services and CLI tools I think it is a strong choice. But, I wouldn’t choose it to build a game or a desktop/mobile GUI application currently.