When Will Rust Be Formally Specified ?

The sooner a language is formally specified and standardized the better. I don’t want to see Rust go the way of languages like Ruby(which eventually got a spec) or Clojure (still does not have one).
Without this and the longer it’s delayed, external libraries spring up to solve problems that should be fully or partially addressed in the core of the language. A formal language spec along with standardization would also potentially inform much higher quality crate design while also allowing quicker progress on many fronts due to less ambiguity. It also would allow for multiple tool-chain implementations e.g. compilers.

My interaction with Rust core folks on …

1. Whether an official language spec is even required
2. Why error handling (an example of core functionality) needs a lot of attention
… have been mixed
. Not a good sign but I’m still hopeful.
The language survey is a good sign too but I don’t always want my language designer/implementer adding things based on popular vote.

While I can’t say for sure, Microsoft’s Project Verona feels like another one on the list of MS language projects where they fork a language because they need to maintain control of their future goals. Think JScript (JavaScript), J# (Java), C# (Java), MFC/Microsoft C/C++, F# (Haskell), TypeScript, (JavaScript).
They all start as “just research projects”. Does Microsoft know something about Rust that we don’t yet ?

The top 10 most popular languages in the world all have a formal spec, even Ruby and PHP. Correlation is not causation and all that but there’s clearly a benefit to formalizing sooner than later.

I’m glad RustBelt exists and hoping a formal spec will come to be as a result of trying to formally verify the safety of the language (which is a separate but very important undertaking) for Rust to achieve true success.

It’s inevitable that Rust will get a formal spec and standardization. There’s no way around this for any widely-used language, it’s just a question of when that happens regardless of whether the core team accepts it as a requirement.

https://github.com/rust-lang/wg-grammar seems like the beginnings of this even though it’s been in progress since 2015.

“This RFC introduces a period of ambiguity during which neither implementation nor src/grammar are truly canonical representation of the Rust language. This will be less of an issue over time as discrepancies are resolved, but its an issue nevertheless.”

It’s time for the period of ambiguity to come to an end.