Re:Rust: A Critical Retrospective
by mindcrime on Thursday May 19, 2022 @12:08PM
(#31436497)
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.
[ Parent
| on HN ]
Re:Rust: A Critical Retrospective
by jandrewrogers on Thursday May 19, 2022 @04:34PM
(#31439830)
A 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.
Lots 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.
Re:Rust: A Critical Retrospective
by johndoe0815 on Thursday May 19, 2022 @01:30PM
(#31437621)
Go has been used to implement OS kernel code, e.g. in the Biscuit OS from MIT: 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.
Go 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...