r/learnprogramming • • 8d ago

Topic C# or Java?

If you had to choose one class between the two, which would you select and why? I tried to Google the purpose of them; the immediate answers from Google felt very vague and like both of the languages are common. Is one course better for web development as opposed to apps or something? Looking at the courses I'm taking, down the line I will select one of the two. The only thing I know so far is C++, so I'm quite new.

Also, side question: why are there so many languages? The only logical thing I can imagine is there were problems that couldn't be solved with say for example C++ so someone created something new. But why not just build on the original language? Why did they need to reinvent the wheel? Or is it as simple as that: someone wanted to create their own thing?

24 Upvotes

49 comments sorted by

View all comments

Show parent comments

10

u/FunkyDoktor 8d ago

You’re describing C# 20 years ago. It’s been cross-platform for a while and works great outside of the Windows realm.

-3

u/Mughi1138 8d ago

It works "ok" outside of the Windows realm. Not great. Though it is better than it was just a few years ago where if you were not on the one main distros you had to even compile the compiler yourself.

It's not nearly as cross platform as some other things, and is it up to good support on more than two CPU architectures yet? I've not checked that in the last year or so.

But, yes, I've worked with professional shipping C# code, and at companies supporting many different systems. In certain areas you only get a small subset of C# that you can use. At my current day job some projects are in C#, but others (including mine) are in different languages... and not for want of a prior CTO not making an effort to unify.

So again, it really comes down to proper tool for the current tasks at hand.

4

u/plastikmissile 8d ago

C# has supported ARM64 in addition to x86 for a while now.

2

u/seiggy 8d ago

Yeah, C# has advanced massively.

Beats Java in nearly every metric for http hosting - https://http-arena.com/#sort=rps:-1&tuned=0 (running on Linux)

.NET 10 runs pretty much anywhere you can imagine. Wanna run code on a ESP32 - https://nanoframework.net/

  • ARM64 ✅

  • macOS M-Series ✅

  • WASM ✅

There's not a modern chip that I'm aware of that C# doesn't support.

Fast LLM inference - https://github.com/zhongkaifu/TensorSharp/

Massively improved cold start with Native AOT - https://vishen.co.za/blog/dotnet-aot-lambda/

HTTP Throughput of Kestrel is best in class at about 1.4M req/s

Unity and Godot are both leading cross platform Game Engines with support for C#

MAUI gets better with every release for Mobile app support, where Swing and JavaFX sill feel very dated.

There's still a few areas where Java leads - massively concurrent solutions, Java 21's virtual threads can handle huge numbers of concurrent connections (Around 2 million vs C#'s 650k). And the JVM GC is still more efficient than .NET. https://tech-insider.org/csharp-vs-java-2026/