DEV Community

Discussion on: what's the advantage of golang instead of java or C# ?

Collapse
 
avinersan profile image
Andrei Vinersan

My opinion is that go is most of the time better performing out of the box although .net core 5 might be quite close.
However I think that go is way more verbose and has way less features/extensibility.
Major things that I lack in go are generics, typed attributes/annotations, DI, linq, automatic open api (swagger) generation based on types (Goa is probably closest but not the same), extension methods, object equality/hashing override, string interpolation and there are probably many others.

On the other hand go arguably offers a nicer experience with goroutines (no need to spread async/await everywhere) and is probably easier to learn as it has less features.

Collapse
 
kevinmiles_20 profile image
kevinmiles

When it comes to performance, a benchmark is better than one person's opinion, because we all have our personal preferences of course.
For example:
benchmarksgame-team.pages.debian.n...
This shows that sometimes Go is faster, sometime C# is faster, depending on what you are doing.

I prefer C# because it gives me a choice from a wide range of language features. More than I need sometimes. But at least I have these features available to me, if I did need them. So for example, LINQ is there, but I don't have to use it. But I can't imagine using a language that lacks generics, that would be a big leap backwards.

I came from a C++ background and it took me one week, on the job, to become a productive C# developer. I was choosing to use the basic language features and that was fine for what we were doing.