4 ms·
> That also has little to do with the design constraints of a general purpose operating system. Does it not? It's the same issue around no-stdlib, stricter sen
by bluejekyll 9y ago
> That also has little to do with the design constraints of a general purpose operating system.
Does it not? It's the same issue around no-stdlib, stricter sense of allocated memory, etc. If it isn't something that I can extrapolate from you'll have to explain better why. It's been a while since my CS courses on operating systems.
> Rust gets new features daily [1]. C gets new features every decade if we're lucky.
Yes, this is an age thing. I'm sure in it's infancy, C was gaining features and changing rapidly. For example, C changed significantly early on it's syntax from K&R to Ansi. C compilers have to support that.
It's reasonable to say that the language isn't ready for your use, but the features that are being gained are all related to areas around ease of use of the language, making it easier to get started and lower the initial learning curve. They seem important. By the way, you linked to the RFC repo instead of the language repo: https://github.com/rust-lang/rust/commits/master https://github.com/rust-lang/rust/commits/master. The language does have a lot of features that make it into the nightly branch, but those take a long time to bake until they're promoted to stable.
> Embedded space != kernel hacking, as I've already pointed out.
I thought we were talking about low-level programming, not explicitly Kernel hacking. Yes, Arduino and it's ilk are definitely not full OS'.
For actual Kernel hacking in Rust, there is:
- https://github.com/redox-os/redox https://github.com/redox-os/redox
- https://intermezzos.github.io/book/ https://intermezzos.github.io/book/
- https://os.phil-opp.com/ https://os.phil-opp.com/
All of those projects seem very interesting. For Linux drivers, there was this exploratory project I saw a while back: https://github.com/tsgates/rust.ko https://github.com/tsgates/rust.ko (hasn't been touched in a while).
So people are doing it and seem to be enjoying it.
- Sir_Cmpwn 9y ago>Does it not? It's the same issue around no-stdlib, stricter sense of allocated memory, etc. No, because a general purpose OS has to do that and effectively, securely, and performantly manage userspace access to those resources (including hardware resources, which you didn't mention). It also has to facilitate secure and performant interactions between userspace programs. Beyond kernel hacking you also have to do some serious work on userspace design, especially if you have a microkernel. This is an entirely different domain than embedded programming usually deals with. >Yes, this is an age thing. I'm sure in it's infancy, C was gaining features and changing rapidly. For example, C changed significantly early on it's syntax from K&R to Ansi. C compilers have to support that. Sure, but that doesn't make my argument less compelling. Rust may follow the same path but that's years out and IMO they've already gone too far. >The language does have a lot of features that make it into the nightly branch, but those take a long time to bake until they're promoted to stable. But not before the ecosystem runs with it and ships packages that require you to use a nightly compiler to be productive, in my experience. Not to mention that several projects still build the compiler themselves! I have some opinions about projects like Redox but I'm out of time.
- steveklabnik 9y agoWhich projects still build the compiler?
- Sir_Cmpwn 9y agoServo comes to mind first.
- steveklabnik 9y agoIt downloads a specific version of the compiler, it does not build a compiler. Specifically, whatever one is defined in this file: https://github.com/servo/servo/blob/master/rust-toolchain https://github.com/servo/servo/blob/master/rust-toolchain
- Sir_Cmpwn 9y agoOkay, that doesn't really change anything.