4 ms·
That's tricky to answer, because it depends a lot on what you count as "system software". If you mean literally "the operating system", then arguably not. But i
by mindcrime 4y ago
That's tricky to answer, because it depends a lot on what you count as "system software". If you mean literally "the operating system", then arguably not. But if you include middleware, databases and other "infrastructure" stuff, then arguably yes.
- jandrewrogers 4y agoA proper database can be implemented in python -- I've done it -- but that doesn't make it a systems language. A "systems language" comes with the strong implication that it is possible to write an implementation of most software that is competitive with the state-of-the-art in terms of performance, efficiency, and/or scalability. That is only possible in languages like C, C++, Rust, and similar, hence the "systems language" tag. Languages that are not systems language trade-off this capability for other benefits like concise expressiveness and ease of use.
- fulafel 4y agoLots of real world systems have other design tradeoffs than aiming to be state of the art in those axis. Eg cost, security, maintainability, adaptability to changes, etc.
- johndoe0815 4y agoGo has been used to implement OS kernel code, e.g. in the Biscuit OS from MIT: https://github.com/mit-pdos/biscuit https://github.com/mit-pdos/biscuit Of course, the garbage collector did not exactly make it easier - but it's an interesting piece of software.
- fulafel 4y agoThere have been lots of OS written in languages that support GC. And indeed mainstream operating systems use GC quite a lot for selected objects.
- mindcrime 4y agoGo has been used to implement OS kernel code, but it's an interesting piece of software. Agreed. And I didn't mean to imply that it's impossible to use Go that way, but I think it's fair to say that it's less common and perhaps even less desirable to do that. OTOH, people have written (at least parts of) Operating Systems in Java[1] even, so never say never... [1]: https://github.com/jnode/jnode https://github.com/jnode/jnode