this post was submitted on 09 Jun 2024
230 points (79.6% liked)
> Greentext
7584 readers
2 users here now
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
IMO C# is at the point where Java can probably just die. I don't see a point in keeping Java when C# is a viable option in many use cases.
I'm sure Microsoft will be happy to know their EEE strategy is finally paying off, only two decades late.
Oracle owns Java and has made its proprietary hold on the language clear.
There are no good guys here.
It's attitudes like this that made me choose C# as the language I wanted to use professionally after graduation.
Having grown up in the Slashdot era where people would be childish, post about Micro$oft, and parrot EEE, all while the .NET Foundation consistently put out great tooling with a mature community that actively wanted to help you learn the language/framework, the choice was simple.
I don't think this line of reasoning is strictly speaking correct, but assuming it was, then I think it would follow that Kotlin exists and as such C# does not need to be kept around.
Compiled Java is still cross-platform. It’s been a few years for me, but when I last worked in C# it was a giant PITA to work on it in Linux or MacOS. I hope it’s gotten better.
.NET (not .NET Framework) is cross platform and can be compiled into native binaries on a variety of platforms. There is however the wrinkle of not all the libraries within .NET being supported on all platforms. Most notably, everything involving a graphical UI is Windows only.
The most well known cross platform .NET project you probably have heard about is Jellyfin.
TIL, I love jellifin
It's a lot better with some notable exceptions. First, .NET Core is multiplatform by design, so it is by default quite portable. The .NET Core CLI is extremely powerful and means a CLI workflow is totally feasible (and also simplifies CI pipelines). The new "multiplatform" application framework, MAUI, runs on Windows, Mac, iOS, and Android, but not Linux/GTK/QT etc. You can maybe attribute this to the design philosophy of abstracting native controls, of which "Linux" itself has none, but either way it's useless on Linux. Third party frameworks like Avalonia do work very well on Linux.
Modern .NET (i.e. .NET Core and later) is cross platform. In fact, .NET APIs now are routinely run in containers not based on Windows.