There are already versions of OpenEmbedded leenucks that can't be built (whole system distributions, not the kernel.) To repair that you have to do A LOT of work rebuilding recipies, guessing which patches were included in various source bases.
And now we're going to have to maintain version closures for multiple editions of rust (unless there's a fiat indicating leenucks use is fixed at a particular edition.)
I like Rust. But the last time I used it extensively was around 0.8 and I just don't have the energy to keep learning new editions every couple years. And after surviving the Python 2.3 -> 2.5 -> 2.7 transitions, changing your syntax every couple years just sort of makes me want to curl up in a little ball and cry myself to sleep.
Seriously. I would rather keep coding in C. I hate C. Okay, maybe I just have a mild dislike for C. But I have non-trivial C programs I wrote in 1982 that still compile and run. I have one or two Rust programs from 5 years ago that don't compile and a whole bunch of Rust code from 10 years ago that flat-out doesn't compile.
I dunno. Backwards compatibility is a thing for me.
Rust today is very different from Rust 0.8. And the changes in the last few years have generally been small and in targeted areas that need work. It's nothing like Python in the old days.
Backwards compatibility is a thing for Rust as well. Almost all old code in existence works without modification in newer Rust. (The breaking changes are mostly soundness bugs, and possibly some type inference.)
> (Rust) needs to stabilize before it's used for critical infrastructure.
[0] source: comments on https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... like this one:
+ A particular version of the Rust toolchain is required. Newer versions may or may not work because the kernel depends on some unstable Rust features, for the moment.
What do you view as unstable? What features have you seen disappear? What do you know of that existed in the past post-1.0 that doesn't exist today or has materially changed?
I've been writing rust since about 1.4 back in 2015. I think once in ~2017 I ran into an issue where a bump in the compiler cause an existing crate to not build. That's it. It was bug that was quickly fixed. As style changes and new crates and features are build, old ones are still very stable/reliable and can be intermingled inside the same program. I have trouble thinking of a more stable ecosystem I've worked in.
Sure - not every open source library out there is mature and perfect. But that doesn't mean the language isn't ready to be used.
There's hardly another mainstream language out there that's more stable than Rust: the standard library as well as the language itself follow a strict backward compatibility policy – breaking changes are only allowed to fix safety-relevant bugs.
But it is not ready for critical infrastructure for two reasons:
1) It is not defined. the definition of rust is "the compiler accepts it"
2) There is one implementation
I use rust for a lot of things, things that I really want to be solid and reliable.
But I would not want to use it for systems where lives were at risk.
That is not a domain I work in, so I am hazy on what is available but I know the avionics people have systems and processes. Have they adopted Rust yet?
Rust will be excellent in this space. But it needs definition and alternative implementations first. Probably will not be long.
Also, there are multiple implementations, though they are in various stages of completion.
Sorry for the daft question. Just to clarify, do you mean that the vendor modifies gcc and doesn’t release the source, or that the vendor has its home-grown C compiler that is functionally equivalent to gcc?