News for hackers. Stuff that matters.
Re:A comparison of Rust's borrow checker to the one in C# by lwansbrough on Thursday October 31, 2024 @08:33AM (#42006236)
.NET is totally cross platform these days. Our company develops locally on Windows and deploys to Linux. I’m the only team member on Mac and it works flawlessly.
Re:A comparison of Rust's borrow checker to the one in C# by bluGill on Thursday October 31, 2024 @09:24AM (#42006666)
If you only care about linux on x86-64 or some ARM it is cross platform. Getting .net on FreeBSD is possible, but it isn't supported at all. QNX from what I can tell seems like it should be possible but a quick search didn't find anyone who succored (a few asked). My company has an in house non-posix OS useful for some embedded things, forget about it. There are a lot of CPUs out there that it won't work on.

.NET has some small cross platform abilities, but calling it totally cross platform is wrong.

Re:A comparison of Rust's borrow checker to the one in C# by lifthrasiir on Thursday October 31, 2024 @10:01AM (#42007005)
That's still pretty much cross-platform for all practical purposes, as it supports far more platforms than most softwares anyway. After all cross-platform only means that it runs on multiple platforms, not on all possible or even technically feasible platforms. Being cross-platform usually means a much easier porting but that porting still has to be done somehow.
Re:A comparison of Rust's borrow checker to the one in C# by smaudet on Thursday October 31, 2024 @11:10AM (#42007702)
> for all practical purposes

In fairness this ignores a lot of embedded work.

Java gets to cheat here a bit because they have some custom embedded stuff, but they are also not actually running on all CPUs.

Re:A comparison of Rust's borrow checker to the one in C# by lifthrasiir on Thursday October 31, 2024 @12:00PM (#42008189)
Embedded stuffs require much more than mere cross-platform anyway ;-)
Re:A comparison of Rust's borrow checker to the one in C# by sfn42 on Friday November 01, 2024 @02:50AM (#42014609)
If it doesn't run on TempleOS I dont want it

(Jk I love C#)

Re:A comparison of Rust's borrow checker to the one in C# by neonsunset on Thursday October 31, 2024 @10:42AM (#42007412)
"Vanilla" .NET runs on

Operating Systems: Linux, macOS, Windows, FreeBSD, iOS, Android, Browser

Architectures: x86, x86_64, ARMv6, ARMv7, ARMv8/ARM64, s390x, WASM

Notes:

Mono as referred here means https://github.com/dotnet/runtime/tree/main/src/mono which is an actively maintained runtime flavor, alongside CoreCLR.

- Application development targets on iOS and Android use Mono. Android can be targeted as linux-bionic with regular CoreCLR, but it's pretty niche. iOS has experimental NativeAOT support but nothing set in stone yet, there are similar plans for Android too.

- ARMv6 requires building runtime with Mono target. Bulding runtime is actually quite easy compared to other projects of similar size. There are community-published docker images for .NET 7 but I haven't seen any for .NET 8.

- WASM also uses Mono for the time being. There is a NativeAOT-LLVM experiment which promises significant bundle size and performance improvements

- For all the FreeBSD slander, .NET does a decent job at supporting it - it is listed in all sorts of OS enums, dotnet/runtime actively accepts patches to improve its support and there are contributions and considerations to ensure it does not break. It is present in https://www.freshports.org/lang/dotnet

At the end of the day, I can run .NET on my router with OpenWRT or Raspberry Pi4 and all the laptops and desktops. This is already quite a good level given it's completely self-contained platform. It takes a lot of engineering effort to support everything.