4 ms·
C# has metaprogramming through generics, the Roslyn compiler API and source generators. C# supports limited manual memory management through unsafe and manual
by cameronh90 6y ago
C# has metaprogramming through generics, the Roslyn compiler API and source generators.
C# supports limited manual memory management through unsafe and manual memory allocation methods, but this is primarily aimed at C/C++ interop. Newer performance oriented features like stackalloc and Span/Memory give most of the benefits of manual memory management without the dangers.
Performance of .NET on Linux is on average better than Java and Go.
Mono has an AOT implementation and Microsoft are expected to release one soon.
C# normal coding style may not be to your preference, but it's become a lot less "enterprisey" in recent years. XML is nowhere to be seen any more, for example.
But yes indeed it's not a very good language if you're wanting to directly manipulate registersand hardware addresses.
- Shadonototro 6y ago.net performance is good once fully warmed up JIT, wich never happen for most usecases, only in raw and longrunning benchmarks so no, real performance scenarios, .net don't do better than GO wich is AOT compiled mono performance is very bad actually generics isn't playing on same level as metaprogramming in D, not even close to templates in C++, even Rust do better here using roslyn compiler API is nice, but again, it is not the same as using the language itself already, the experience is different, it is on other hand much better than what GO has to offer