This makes sense! You get the same advantage if the app uses Go or C# though, and both of those can compile to a single statically-linked executable too.
This makes sense! You get the same advantage if the app uses Go or C# though, and both of those can compile to a single statically-linked executable too.
riskable@programming.dev 1 day ago
If it’s written in C# that’s a huge turn-off though because that means it’s likely to only run on Windows.
I mean, in theory, it could run on Linux but that’s a very rare situation. Almost everything ever written in C# uses Windows-specific APIs and basically no one installs the C# runtime on Linux anymore. It’s both enormous and a pain in the ass to get working properly for any given C# project.
dan@upvote.au 1 day ago
C# has been cross platform for a long time.
Not really. Most C# apps use .NET libraries rather than direct Win32 calls, and .NET is cross-platform.
You can compile a C# app to a single executable that doesn’t require the framework to be installed.
Are you running Jellyfin, the *arr suite, slskd, or Technitium DNS? They’re all written in C#.
riskable@programming.dev 1 day ago
You’ve obviously never tried to get any given .NET project working in Linux. There’s .NET and then there’s .NET Core which is a mere subset of .NET.
Only .NET Core runs on Linux and nobody uses it. The list of .NET stuff that will actually run on .NET Core (alone) is a barren wasteland.
dan@upvote.au 1 day ago
I’m a C# developer and run .NET apps on Linux all the time. Even before .NET Core, I was using Mono to run C# apps on Linux. There used to be quite a few GNOME apps written in C#.
Nope. The old .NET Framework has been deprecated for a long time. The latest version, 4.8.1, is not very different to 4.6 which was released 10 years ago.
The modern versions are just .NET, which is what .NET Core used to be, but with much more of the framework implemented in a cross-platform way.
All modern .NET code is built on the cross-platform framework. Only legacy apps used the old Windows-only .NET Framework.