3 ms·
The biggest legacy of Unix is C. With Unix, runtime provisions effectively end where C picks up. C is "good enough" to build applications on, and it can be wri
by chipsy 13y ago
The biggest legacy of Unix is C.
With Unix, runtime provisions effectively end where C picks up. C is "good enough" to build applications on, and it can be written portably, most of the time. But there is plenty of reason to challenge the idea that we need a baseline of C. There are benefits to having richer data types built in, to having garbage collection, and all of those typical higher-level programming arguments. And if it's done at the OS level, the whole OS may also benefit from that - it opens up more options for organizing data, for configuration interfaces, and for communicating between processes. The system is likely to be more stable and more secure as well.
The downside is also known - losing lower-level control, losing lower-level performance. But each time our hardware situation morphs, there's an incentive to abandon the lower-level stuff to get better portability. So in time, as hardware usage changes(not just in terms of devices and their internal HW management, but also the increasing complexity of our networks) we're likely to incrementally adopt the higher-level paradigms.
- pflanze 13y agoI found/find it interesting that the Oberon system is written in a language that has garbage collection built in (the Oberon programming language). I haven't checked how it is dealing with allocation in interrupt handlers, though. I should, it is a small system and probably deserves reading the code of.
- aaronem 13y agoGreenspun's tenth rule writ large.
- dmytrish 13y agoGreenspun's tenth rule is result of "If you have a hammer, all around looks like a nail" applying value "Lisp" to "hammer" metavariable. Specifically Lisp is not good at writing a OS for existing hardware, though I agree that there should be more progress at system programming language level.
- nwmcsween 13y agoC isn't all about performance, can you map your unknown high level language with it's great features to assembly? Do you know what assembly is going to be produced out of this language? If not good luck with debugging, understanding performance.