Apologies if this isn’t the right forum/channel.
TL; DR: I understand that there isn’t a formal Rust language specification (akin to C and C++ anyway). Is there a plan to get a formal specification at some point ?
I have an OS development background and I work at Arm at Cambridge, UK, in a group where the charter is to promote the use of Arm IP in safety critical domains using open source software as a medium.
We have an internal special interest group where Rust afficionados get together and reason about possibilities with Rust and Arm. It’s fun!
Recently, I informally introduced Rust to some of our long bearded and dyed in the wool C/C++ compiler architects. I noticed a pattern in their responses/opinions which I’ve seen in other similar discussions I’ve had and I’d like to share some points here to get opinions.
The first phase of the discussion is always about convincing ‘them’ about the safety properties. That’s usually not hard with such folk who understand the problem space well.
The second phase which inevitably follows - especially if the person has some experience with safety critical domains (although just productisation exposure is enough) - trends to a point where they ask for a pointer to the formal language specification.
That’s where the conversation usually ends, unfortunately.
Folks who are in the business of assessing and qualifying software and tools for deployment in safety critical areas are usually the ones who simply won’t consider the technical merit alone - they want to see a formal language spec.
I made some good headway with the compiler architects in terms of convincing them of things like the compile time safety guarantees thanks to the ownership semantics, the ability to specify the desired consistency of the memory model for atomics, the elegance of having access to closures, iterators, generators in a systems programming language, the super FFI possibilities, the whole shebang. Everyone raves at those bits. The conversation always ends up talking about evidence of misc ecosystem uptake and it always ends at the language specification point.
I don’t think this is subject to the safety critical domain alone BTW. I recently co-presented about Rust and Redox OS at a conference in Vancouver where 2 reps from Arm silicon partners came up to us later and said pretty much exactly this: We like Rust and we want to use it in our general product roadmaps (mobile and enterprise were spoken of). But we see that as being too risky unless the language specification is in place and there is evidence of both compliance to that specification in the Rust tooling vendor-o-spheres as well as evidence of emerging production deployments.
So: I’ve been given to understand that a formal language specification doesn’t exist. The best articulation of a specification is embedded in the Rust compiler sources.
Is there a plan to get a formal language specification - akin to C/C++ - at some point ?
I don’t think it’s important to have it right away. It’s more important to have a practical vision towards when and how such a specification might come about. That in itself will help allay fears and trend well in such domains over time.
Thanks for hearing me out!