4 ms·
Mara’s blog post (your first link) says essentially that Rust does not need a standard since it already has means for adding features and maintaining compatibil
by faitswulff 3y ago
Mara’s blog post (your first link) says essentially that Rust does not need a standard since it already has means for adding features and maintaining compatibility.
- thesuperbigfrog 3y agoMara's blog post also describes the benefits of standardizing Rust. Since she created the RFC for standardizing Rust (https://github.com/rust-lang/rfcs/pull/3355 https://github.com/rust-lang/rfcs/pull/3355) and is also on the team that is working on Rust standardization (https://blog.rust-lang.org/inside-rust/2023/11/15/spec-vision.html https://blog.rust-lang.org/inside-rust/2023/11/15/spec-visio...), I think she was making the point that Rust has good controls in place for adding features while compatibility, not that "Rust does not need a standard". If she really believed that Rust does not need a standard, why would she create the RFC and join the team working on the effort? Rust is a great language. There is no reason why it should not have a standard to better formalize its requirements and behaviors.
- faitswulff 3y agoYes, it’s a nuanced blog post. But that also means it doesn’t coming out swinging hard for needing a standard, either. It seems like there is as strong an argument to be made that “Rust is a great language. There is no reason why it needs a standard.” See the Ferrocene compiler which has been qualified for ISO standards. It’s essentially a standard Rust 1.68 compiler with a lot of added documentation. If you need a Rust compiler for safety critical environments, it’s reasonably priced and requires essentially zero changes to the Rust compiler that they didn’t just upstream. Without a standard. Yes, it would be nice to have a standard for reducing ambiguity. But does the language need a standard? And if so, then for what purpose?
- thesuperbigfrog 3y agoThey created a specification for Ferrocene because Rust does not yet have a language standard: https://spec.ferrocene.dev/ https://spec.ferrocene.dev/ >> But does the language need a standard? Yes, Rust needs a standard. >> And if so, then for what purpose? For the same purpose that all standards have--to formally define it in writing. Ferrocene's web site (https://ferrous-systems.com/ferrocene/ https://ferrous-systems.com/ferrocene/) shows that it meets the ISO 26262 standard (https://en.wikipedia.org/wiki/ISO_26262 https://en.wikipedia.org/wiki/ISO_26262). Why does ISO 26262 matter? What purpose does it serve? Couldn't a vehicle manufacturer just say "our vehicles are safe"? Which would you trust more: a vehicle that is verified to meet ISO 26262 standards, or a vehicle whose manufacturer tells you "it's safe" without formally defining what "safe" means? I stated it above, but I will re-state it here: Without a language standard, there are many organizations and industries that will not use Rust. Not because Rust is not a fantastic tool for the job, but because laws, regulations, etc. require standardization and qualification of components. This means that I can use a qualified C compiler and toolchain to write safety-critical code, but I can't use Rust despite the fact that Rust is a better choice and will help to prevent problems. Standards do matter. Rust needs a language standard.
- faitswulff 3y ago> For the same purpose that all standards have--to formally define it in writing. This is tautological. It's equivalent to saying "it needs a standard to be written because it needs a written standard." I mean what use case is there for Rust language users that isn't already met by the Ferrocene project? And the Ferrocene project is not a standard as in "other implementations will be found lacking," but a description of the 1.68 compiler as-is. That is a specification, not a standard. Ferrous Systems did not need Rust to have a standard in order to qualify the compiler for ISO 26262 and IEC 61508.
- thesuperbigfrog 3y ago>> "it needs a standard to be written because it needs a written standard." Yes. And if the law in your country requires it to be standardized for specific use cases, then a language standard is needed. >> what use case is there for Rust language users that isn't already met by the Ferrocene project? Can you legally use Rust for the control software in aircraft? (https://en.wikipedia.org/wiki/DO-178C https://en.wikipedia.org/wiki/DO-178C) What about the safety systems for railroads? (https://ldra.com/ldra-blog/software-safety-and-security-standards-for-gts-and-rail-applications/ https://ldra.com/ldra-blog/software-safety-and-security-stan...) What about the control systems for nuclear reactors? (https://www.nrc.gov/docs/ML1300/ML13007A173.pdf https://www.nrc.gov/docs/ML1300/ML13007A173.pdf)
- faitswulff 3y agoAnd if you need a ISO 26262 qualified Rust compiler, one exists. Hurrah. Since you edited your post…simply having a standard won’t immediately qualify the language for those industries. There is only a tenuous link between having a standard and qualifying the language for industrial use.
- thesuperbigfrog 3y ago>> simply having a standard won’t immediately qualify the language for those industries. There is only a tenuous link between having a standard and qualifying the language for industrial use. Not having a language standard disqualifies Rust. Administrators say that it shows that Rust is "not serious" and "not ready" for critical work.
- 3836293648 3y agoSpec ≠ Standard Rust absolutely does not need a standard. Having a standard is a completely outdated way to design software in the internet era. Having a specification is a great idea and is what most people actually mean.
- GrumpySloth 3y agoWhat’s the difference?
- 3836293648 3y agoA standard is a way of writing and ratifying a specification. A spec is just a formal document describing the requirements for something, but a standard is when you have large coalition of relevant players accepting the spec as a committee. In this context it's also implied that it's an ISO standard which is extremely slow, rigid and formal and is a downgrade in every way from the current system of anyone who wants to voice their opinion just chiming in on an RFC on github.