Hacker News new | comments | show | ask | jobs | submit login
Rust by Example (rustbyexample.com)
206 points by kercker on May 9, 2016 | hide | past | web | favorite | 20 comments

If you want something like this but a little bit shorter that easily fits on 3 printed pages: https://learnxinyminutes.com/docs/rust/

And https://play.rust-lang.org/ can be used to test snippets of Rust code w/o having to install compiler. The best feature is you can make a link to your code for others to review.

I found this to be okay as a relatively speedy intro. It's quite disorganised though - some concepts and terms appear to be assumed but then introduced properly later on. I was wondering if this was intentional or not (maybe you are supposed to be patient?).

I assume the site is mostly aimed at people who have already read the rust book [1].

[1] https://doc.rust-lang.org/book/

Rust by Example was actually not originally a Rust team project. It was an independent work that was handed over to the Rust team for maintenance by the original author.

As I understand, it received basic polishing and updates to make sure it was correct, but hasn't been edited much beyond that.

This history is accurate. RBE is pretty low on my priority list; finishing up the book and the standard library docs are much more important right now. I to try to keep up on PRs.

Hmm, this is a bit confusing as the book is also quite terse for being a book teaching about a new language, and also heavily example based.

Not sure of the original intent, but when I started using Rust I used Rust By Example for finding snippets of things like file io where I get the gist but want to quickly see the pattern or involved parts of the stdlib.

The Rust docs are great, but having a starting point can be super welcoming so you aren't poking around blindly at different types that might be relevant.

Yeah it's more of a well-connected graph than a tree. Most of the examples that contain a concept that hasn't been covered include a link to where it is covered, and generally completely understanding the details in the example may help improve your understanding of the concept being introduced but isn't necessary to get a basic grasp.

We've had a contributor that's been slowly going through the text on a variety of things, and they're also working on untangling forward references.

What's with the exclamation mark at the end of function names? e.g. println!("foo")

That signifies a macro. It's meant to visually distinguish macros from ordinary function calls because macros may have arbitrary semantics (they can expand into any code at all). The stdlib defines `println` as a macro because it allows for a neat compile-time parsing of format strings.

(See [1] and the linked source if curious.)

[1] https://doc.rust-lang.org/std/macro.println!.html

Sounds like what Rust needs is compile macros [1]. That way, printf can still be a function, but it would be optimized at compile time if the formatting string is constant.

[1] https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node101.html

Compile macros wouldn't be sufficient for Rust's println! because the type signature (even the number of arguments) depends on the format string. The format string has to be constant and has to be interpreted at compile time so that the variables being printed can be type-checked.

Thanks, that makes a lot of sense as a design decision, should be a big step forwards for security.

no table of contents? see the gobyexample.com site for how to do it better

Are you on mobile? I get a hamburger menu at the top that pulls out a ToC from the left side.

Nothing appears on iOS with content blockers on, but the menu is still clickable. Another brilliant example of modern web-design.

Did you scroll a little bit? It's not visible unless you scroll up.

The example are meant to be edited and re-executed, a desktop would provide a better experience.

Applications are open for YC Summer 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact