I'm personally a big fan of garbage collected languages. It's just unfortunate that Microsoft chose C# not to be Ahead-of-Time (AOT) compiled but running on a virtual machine like Java (after which it was modeled after).

Alas, that ship has sailed and Rust has many interesting features so I'm comfy with it taking over the role of C/C++ over the next decades.

Native AOT with C#/.net has come a long way, fwiw.

https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...

Some deployments can be AOT compiled (ASP.NET, mobile), others (like WinForms, WPF) cannot. That makes it confusing and fickle since not all language features work with AOT.

Microsoft needs to choose for AOT Full Monty and leave the CLR behind.