3 ms·
The summary of the managed code in OS debacle is probably: Rarely do you get something for free, and assuming that this time is different is more likely hubris
by ethbro 9y ago
The summary of the managed code in OS debacle is probably:
Rarely do you get something for free, and assuming that this time is different is more likely hubris.
And when you do get something for "free", it's more about making trade-offs that no one notices (JIT) or doing incredibly clever things in a layer abstracted enough that people won't have to concern themselves with what you did (language and compiler design).
- pjmlp 9y agoYou are forgetting a very important factor, politics trump technical achievements. As for note, all modern mobile OSes have languages with runtimes, regardless of AOT or JIT compiled, but they all required architects with guts to push them through.
- ethbro 9y agoOSes with managed runtimes and OSes that are built on managed runtimes are two different things (vis the spelunking Android had to do in order to get rendering performance to acceptable latencies).
- pjmlp 9y agoObjective-C also has a runtime.
- ethbro 9y agoWe're talking about two different things. I'm talking about OS components being written in managed vs unmanaged code. You're talking (I believe) about whether or not an OS has a first-class managed runtime for apps. The article's author's assertion is that blindly using managed code in performance-critical components is a stupid idea, and I agree. From the article, WinFS (the filesystem), Avalon (the UI compositor and renderer), and Windows Communication Foundations (networking) were all rewritten in the then-new/unstable C# for Vista. Given that fate of the projects, I'd say history bears it out as being a stupid idea.
- pjmlp 9y agoNeXT device drivers were written in Objective-C, check Driver Kit API. The projects were killed by political reasons, not technical. Specially after what was being done with Midori, also killed by management, in spite of the technical achievements.
- ninkendo 9y agoOjective-C is a superset of C though. If you avoid the (dynamic dispatch) message passing, and if you construct/destruct objects manually, you're getting the same performance as C. It's trivial to move the performance-critical bits into the pure-C subset of objective-C. You can't really do this with a managed (VM) language.
- pjmlp 9y ago> check Driver Kit API.