3 ms·
>writing an OS in C# and gain insights into what is wrong in C# Performance-wise is great In some ways, yes, but was C# ever intended to be a systems language?
by EpicEng 10y ago
>writing an OS in C# and gain insights into what is wrong in C# Performance-wise is great
In some ways, yes, but was C# ever intended to be a systems language? No, and that's obvious from its design. So, what is this really telling us? That the language has issues when used in a way it was never intended to be used?
- vmarsy 10y agoI see your point, For me, it's more in the spirit : "Hey look C# used as a systems language really pinpoints performance problems X, Y, Z." Improving the compiler to better handle X, Y, Z will yield to improvements all over the spectrum, not only in systems programming. C# used as a systems language only helped us find those issues faster. Short-lived stack allocated arrays, zero copy, etc. isn't something only systems programmers need. if your average ASP.Net webserver can benefit from it, it's a good thing.
- pjmlp 10y agoIn the 90's C programmers used to state that C++ wasn't a systems programming language, now their main FOSS compilers are written in C++.
- nickpsecurity 10y agoOn top of that, even some L4 microkernels are written in C++. So, efficient that they fit into a L1 cache as they run ulta-fast. I keep trying to get people to not use C++ for these but funny it's almost a trend now.
- naasking 10y ago> I keep trying to get people to not use C++ for these but funny it's almost a trend now. I can understand why L4 choose C++ at the time, as it had stricter checking than C, but OS kernels have very little internal code reuse that necessitates inheritance or templates. This is doubly true of microkernels. There is literally no reason to use C++ in this domain. Ada or C, and soon Rust should be the only considerations IMO.
- nickpsecurity 10y agoTotal agreement. :)
- antnisp 10y agoArguably C++ in the 90s is a different beast than C++11 and later.
- pjmlp 10y agoThose compilers and OSes written in C++ were started when C++98 was the latest version available across all major compilers.