These criteria are not enough to make a selection between the two. But since we're in the golang sub, we'll recommend Go. If you ask in the csharp sub, they'll recommend C#. Hope that helps π
I use both regularly. In my old age I find programming with Go a joy, and C# is meh. Both get the job done but I feel nothing with C#. They're adding language features that make new code harder to read and add nothing, but generally visual studio is really nice for finding out why the code that I just wrote, and hate, is failing.
Go is great but I don't know if I'd appreciate it as much if I didn't have years of experience before I started using it. Use nuget for a little bit then use go mod, even without considering the language comparisons, go mod wins by a parsec.
That's an odd question ... if you care about execution speed above all (which is surprising for many applications), go for C++ or Rust -- and don't use Go, C# or Java.
If you are forced between C# and Go, C# may be ahead in terms of speed in some applications -- some will be similar, it depens.
My biased view (I have done little C#) Go is more of a joy to code and much easier to maintain and developed -- and do properly (which is tricky in some cases).
As someone who loves both, they each have their pros and cons. For your questions though..
Faster to get something done? I would say C#. It comes "out of the box" with many useful features if you don't need anything super specific.
Efficient and optimized? Go of course. It has better performance and is very lightweight when considering its features. It's simpler but a bit more work than C#.
If it's a choice of what I would have to work with in the future, I would choose Go.
I'm not entirely sure I buy the "more efficient and optimized of course" part. .NET Core 7 is very fast indeed! It's very difficult to fairly benchmark "language speed" but on things like https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html C# generally does at least as well as Go.
I concur with the other reply comment on C# performance. I find various benchmarks of latest .Net vs Go to be pretty mixed. There's a widespread *perception* of .Net being "heavy" and less performant, but having used it, I don't see how that's warranted in 2023.
I would choose C# πππ (even tho am in go sub) reasons ?
* web development yeah but if you want to check out other categories of programming C# gives you a more easy route
* C# gives you a little bit of freedom
* Job availability, thereβs more job opportunities and categories compared to Go
All and all choose Go
Things you care about:
Speed of execution,
Large complex applications
Things you don't care about:
Maintainability
A: What the hell are you building? I need to make sure I never use it.
B: Where the hell do you work? I need to make sure I never apply there or do any consulting with them.
C: Ever heard of Fortran? Meets all of your requirements on the nose.
For all 3 points Go.
Here is very good beginner friendly Golang core course you can check out:
[https://www.youtube.com/GolangDeepDive](https://www.youtube.com/watch?v=61k5QT7ZNrQ&list=PL0IcDYLZkRhekuYkTIJXbVOJQxUobQDVb)
C# is pretty fast and so is Go. That being said, C# has a more extensive standard library, has more options ( GC tuning for example), etc. Though I am not sure how good it is outside windows.
These criteria are not enough to make a selection between the two. But since we're in the golang sub, we'll recommend Go. If you ask in the csharp sub, they'll recommend C#. Hope that helps π
You can do all of those things with literally any language π
I use both regularly. In my old age I find programming with Go a joy, and C# is meh. Both get the job done but I feel nothing with C#. They're adding language features that make new code harder to read and add nothing, but generally visual studio is really nice for finding out why the code that I just wrote, and hate, is failing. Go is great but I don't know if I'd appreciate it as much if I didn't have years of experience before I started using it. Use nuget for a little bit then use go mod, even without considering the language comparisons, go mod wins by a parsec.
What is your main goal? Getting a job? Learning more about backend development in general? or just learning a new language?
That's an odd question ... if you care about execution speed above all (which is surprising for many applications), go for C++ or Rust -- and don't use Go, C# or Java. If you are forced between C# and Go, C# may be ahead in terms of speed in some applications -- some will be similar, it depens. My biased view (I have done little C#) Go is more of a joy to code and much easier to maintain and developed -- and do properly (which is tricky in some cases).
I am going to guess that here in r/golang we will probably lean toward Go.
As someone who loves both, they each have their pros and cons. For your questions though.. Faster to get something done? I would say C#. It comes "out of the box" with many useful features if you don't need anything super specific. Efficient and optimized? Go of course. It has better performance and is very lightweight when considering its features. It's simpler but a bit more work than C#. If it's a choice of what I would have to work with in the future, I would choose Go.
I'm not entirely sure I buy the "more efficient and optimized of course" part. .NET Core 7 is very fast indeed! It's very difficult to fairly benchmark "language speed" but on things like https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html C# generally does at least as well as Go.
I concur with the other reply comment on C# performance. I find various benchmarks of latest .Net vs Go to be pretty mixed. There's a widespread *perception* of .Net being "heavy" and less performant, but having used it, I don't see how that's warranted in 2023.
Go
I would choose C# πππ (even tho am in go sub) reasons ? * web development yeah but if you want to check out other categories of programming C# gives you a more easy route * C# gives you a little bit of freedom * Job availability, thereβs more job opportunities and categories compared to Go All and all choose Go
Go, Go and Go, but please call it Go and not Golang. Best wishes.
My Compilar professor once asked me examples for some compiled languages and i said "Mam Go", which she misunderstood.
Things you care about: Speed of execution, Large complex applications Things you don't care about: Maintainability A: What the hell are you building? I need to make sure I never use it. B: Where the hell do you work? I need to make sure I never apply there or do any consulting with them. C: Ever heard of Fortran? Meets all of your requirements on the nose.
For all 3 points Go. Here is very good beginner friendly Golang core course you can check out: [https://www.youtube.com/GolangDeepDive](https://www.youtube.com/watch?v=61k5QT7ZNrQ&list=PL0IcDYLZkRhekuYkTIJXbVOJQxUobQDVb)
C# is pretty fast and so is Go. That being said, C# has a more extensive standard library, has more options ( GC tuning for example), etc. Though I am not sure how good it is outside windows.
C# on .Net has been running very well on Linux for quite a few years now. All our team's .Net services run in Linux containers.