3 ms·
> it's simple to build self-contained executables Also doable in dotnet > it's also a relatively simple language that's easy to pick up and use, in contrast t
by kumarvvr 4y ago
> it's simple to build self-contained executables
Also doable in dotnet
> it's also a relatively simple language that's easy to pick up and use, in contrast to how complex code can get with C# and Java
Go is not a simple language. It has made choices of syntax that are baffling. Not to mention the mess that is exceptions and generics.
C# and Java, on the other hand, feel natural to read.
> it also has fewer footguns than C or C++ without the complexity of Rust (which some might prefer), although it doesn't try to do as much
C# is the same in this case. Far fewer footguns.
> it has a decent community and lots of useful packages, even the included http libraries are nice to just get things done
C# wins, but perhaps because it has been around for so long. But its ecosystem is very good.
> it doesn't have a history of challenging versioning and platform support, when compared with .NET (Windows only support with IIS for legacy projects, anyone?)
Things change, systems change, environments change. At present, C# and dotnet are truly cross platform and are amazing platforms.
> the performance is generally good enough
In Go, as your program size and team gets bigger, code management becomes harder. C#, along with Visual Studio is at its productive best, whether its with one developer or a 100 developers.
- KronisLV 4y agoIf it is the best option for you, then that's great - finding a good fit for your needs is what you should choose technology based on, after all. My own experiences do not allow me to agree with all of your arguments, nor do I think you or anyone else can make them in such an absolute manner (such as about the language complexity/scope) but I also acknowledge that people will have different experiences, even with the same technologies! A trivial example of comparing the possible scope of any two languages in question, would be to glance at their lists of reserved words, for example https://go.dev/ref/spec#Keywords https://go.dev/ref/spec#Keywords and https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ https://docs.microsoft.com/en-us/dotnet/csharp/language-refe... However admittedly that's not a discussion that I have the time for, though I'm sure that lots of people here might share their own thoughts and experiences. Honestly, for web development, everything starting with .NET Core and the newer versions has been pretty cool, so it's not like you have to deal with the inherent complexity every day, unless someone gets a bit too clever. Of course, less isn't always better, as certain other languages might demonstrate (a silly example, but still): https://en.wikipedia.org/wiki/Brainfuck https://en.wikipedia.org/wiki/Brainfuck The only thing I cannot agree with here strongly is your argument about Visual Studio: I yearn for the day when Microsoft will finally port it over to *nix, but if you don't need to support it as a developer platform then you're in a pretty nice place to be! For everyone else, in the mean time, I guess there is Rider https://www.jetbrains.com/rider/ https://www.jetbrains.com/rider/ (though, of course, a paid product)