7 ms·
Ideally we should hold all new code to a higher standard than that. All programmers spend much more time reading code than writing it. Likewise, Rust is not f
by zenlikethat 11y ago
Ideally we should hold all new code to a higher standard than that. All programmers spend much more time reading code than writing it.
Likewise, Rust is not finalized as a language yet. That means whoever has to maintain the original commenter's code is likely to be in for a rough time if and when they ever attempt to bump the Rust version.
- steveklabnik 11y ago> Rust is not finalized as a language yet. It is just as finalized as any other language. > if and when they ever attempt to bump the Rust version. If the parent is using a stable release, like this 1.6 is, then bumping the version should be all they need to do. (Unless they're relying on a safety hole for some reason; we do fix those)
- zenlikethat 11y agoFair enough- I wasn't familiar with Rust's backwards compatibility guarantees and had heard a bit about breakage, so thanks for pointing that out.
- steveklabnik 11y agoNo worries. Every 1.x+1 is backwards compatible with 1.x, modulo some details. Usually breakage is mentioned in the context of the nightly ecosystem, which has no particular guarantee. We also reserve the right to fix soundness bugs, though we try to make upgrading easy in those situations of and when they occur (we've only had one or two so far).
- Manishearth 11y agoRust development was done in public (unlike Go or Swift which started out privately), so we had a very long 0.x period which was public and had tons of breakages where the language designers tinkered with just about every tradeoff. So it's easy to see where you get the impression that Rust is prone to breakages, but that doesn't happen anymore.
- dasfasf 11y agoRust is not as finalized as any of the languages whose semantics are completely defined by a standard document. There is no definitive answer to the question of what a great many pieces of Rust do beyond checking out rustc from the commit date and examining the LLVM IR.
- steveklabnik 11y agoThere are a very small number of languages which have those things. They are useful and we want them, but I think it's _generally_ an unreasonable standard overall.
- dasfasf 11y agoNot if you weight by use. C, C++, Java, Javascript, and C# all have specs. Among the most popular languages, it's really only the scripting languages that have the "as our implementation does" perspective on specification. I've always used languages that have standard documents, and communities that think those standard document are very important, so rather than being unreasonable, I think of complete language documentation as the natural state of the world. Incidentally, this isn't really a criticism, but it's precisely because I don't see Rust as finalized that it isn't. A language that's finalized but not specified is just poorly documented.
- steveklabnik 11y agoYes. Those are all old, established languages. And while they do have a _lot_ of use, there are also a significant number of languages which see heavy amount of use that have no spec. And as you mention, it's not exactly a criticism; it depends on where you fall on the maturity scale of languages you wish to use. It's only unreasonable due to Rust's young age. At Rust's age, none of those languages had a specification either.
- kibwen 11y agoIn fact, C didn't have a specification for the first 17 years of its existence. :)