5 ms·
I enjoy reading about rust. I don't know the language (yet), but I've been keeping my eye on it for a few years, and I think it's going to be fantastic once it
by benjismith 10y ago
I enjoy reading about rust.
I don't know the language (yet), but I've been keeping my eye on it for a few years, and I think it's going to be fantastic once it stabilizes and gets improved tooling.
I especially welcome the possibility of using a safe language like rust for web development, instead of writing more dreadful javascript...
- Manishearth 10y agoNote that Rust is stable now. IDE tooling and stuff isn't there yet (soon?!), and there are other reasons why you may not use Rust, but it is stable. After 1.0 the Rust releases have been stable, with the stability checked against the entire ecosystem on crates.io. https://blog.rust-lang.org/2014/10/30/Stability.html https://blog.rust-lang.org/2014/10/30/Stability.html
- lacampbell 10y ago> Note that Rust is stable now. Is it? Unstable (io #27802) : the semantics of a partial read/write of where errors happen is currently unclear and may change https://doc.rust-lang.org/std/io/trait.Read.html#method.chars https://doc.rust-lang.org/std/io/trait.Read.html#method.char... I'm curious about what "stable" means to rust advocates, because it doesn't mean the same thing to the rest of us. I frequently see rust pushers debating this point with people as well. If your standard library isn't finished, it's very misleading to say rust is stable.
- steveklabnik 10y agoThat method is not yet available in stable Rust, because it's unstable. If you run that example on stable Rust, you'll see error[E0554]: #[feature] may not be used on the stable release channel > isn't finished I wrote about this here: https://news.ycombinator.com/item?id=13277438 https://news.ycombinator.com/item?id=13277438 TL;DR: stuff starts out being added, sits in unstable for a while, then makes it to stable. No software is ever finished. Stability is not the absence of change; stability is the absence of things breaking. > I'm curious about what "stable" means to rust advocates You should read the blog post in the parent comment, as it explains, at length.
- lacampbell 10y agoSo the language is stable, but it ships with an unstable, unfinished standard library? I'm sorry, but that's not what 99% of working programmers would consider "stable". You can argue semantics all you want, but I see rust advocates being called out on this all the time. If you keep having to educate people on this, maybe the problem is not us, but your strange definitions of words like "stable"? Btw, my immediate reaction to seeing that very error message was to stop using rust, and think to myself "I'll use it when it's stable". I'm sure I'm not the only one.
- steveklabnik 10y ago> So the language is stable, but it ships with an unstable, unfinished standard library? No, it does not. It ships with a stable standard library, but methods that are unstable are also shown in the docs, so you can see what's happening in upcoming releases. And it links to the issue where you can get involved to help bring the method to stable, if that's important to you. > I see rust advocates being called out on this _all the time_ Called out on what, specifically?
- jdub 10y agoIf we ignore the unnecessary heat of the comment for a moment, there's an interesting developer experience misunderstanding in there. It may even be enough to just change the wording -- instead of "unstable", "proposed"? (Might sound too tentative.)
- Manishearth 10y agoI like this. Perhaps "Proposed, nightly-only" would be even clearer?
- steveklabnik 10y agoYeah, totally. This would make for a very interesting RFC. (There's also always been a disconnect between naming in this regard; that is, you can only use "unstable" things on the "nightly" build of Rust. And while we try to produce a nightly every night, it doesn't always happen, as these last few weeks have shown. That is changing, at least. But "proposed Rust" sounds stranger than "nightly Rust", so this disconnect might persist even if we decided to change "unstable" to "proposed". Side note: Ember and IIRC Chrome call their nightly versions "canary"...)
- burntsushi 10y agoThat method is marked unstable, which means you can't use it on the stable releases of Rust. The only way to use it is to do both of the following: 1. Use nightly Rust. 2. Explicitly enable the `io` feature with a special directive in your source code.
- Manishearth 10y agoYou have to explicitly opt in to unstable features. Provided you don't do that, Rust is stable. There are bits of the standard library marked unstable, yes. This is true in almost any language/compiler -- there's always some new/experimental or otherwise nonstandard stuff that the compiler will let you do if you opt into it. Clang has its own nonstandard bits. So does GCC. The fact that almost all crates in the Rust ecosystem work on stable is an indication that enough of the stdlib is stable for it to be useful. The Rust stdlib will never be "finished"; there will always be new things being added. This is true for every language. Allowing folks to experiment with unstable features is not a bad thing.
- grayrest 10y ago> I especially welcome the possibility of using a safe language like rust for web development, instead of writing more dreadful javascript... There are now a number of typed languages that have solid compile-to-js support. I've done it with OCaml (js_of_ocaml, Bucklescript), F# (Fable), and Elm. For dynamic languages, there's also Clojurescript, which is quite nice.