
What’s New with “The Rust Programming Language”? - doppp
http://words.steveklabnik.com/whats-new-with-the-rust-programming-language
======
EduardoBautista
I really like Rust. As someone who never had a formal computer science
education, the early version of this book helped me understand how programs
handled memory in a way that no other resource has been able to.

I started looking at my Ruby programs and would focus on trying to reduce the
amount of memory allocations in order to improve performance, and it worked.

Even though I don't think I am going to use Rust in a production environment
soon, it taught me to think about my code in a new way. It definitely is a
language that everyone should take the time to learn.

~~~
steveklabnik
I am really glad to hear it. One of the reasons I had made the Ruby -> Rust
jump fairly easily was that I'd been programming in C for most of my life, and
got a BS in CS. But I also know that a _ton_ of people have not. So it's
really really important to both me and the Rust team broadly that we make Rust
accessible to this crowd.

(I also agree with you with going back to Ruby; I look at my code now and go
"oh no so many allocations" "oh no is this threadsafe I have no idea" :) I
will still always love Ruby though. )

------
ardit33
I have a serious question: Is anybody using Rust in production? I mean, I have
seen so many countless blogs about it, but I have yet to hear it being used
seriously.

At this point it looks like it is just a lot noise/marketing but no real large
scale deployments yet and why is this?

~~~
pornel
FWIW, I'm using it for
[https://imageoptim.com/api](https://imageoptim.com/api) — it's an image
compression API. Rust is at its very core (with high-level fluff in NodeJS).
It's not large scale yet, but that's only because I'm just starting.

Rust is working great. It's stable and reliable. I don't love Cargo, but it's
still _sooo_ much better than autotools.

I've got efficiency I need for pixel-pushing, and I'm not worried that an off-
by-one error will get my servers owned.

~~~
namelezz
Why don't you like Cargo? Do you use pure Rust or have FFIs to C libs?

------
jat850
Steve,

TRPL has proven a fantastic resource for learning Rust. I'm wondering if you
have a plan for how it will track the advancement of the Rust language itself
- do you intend to maintain a version of the book for major point releases of
Rust, minor point releases, etc?

I wish I could cite some specific examples but I didn't keep notes, but I
think I've come across a a few instances where, say, something behaved
differently in Rust 1.10 versus Rust 1.12. Will the book attempt to tackle
this?

~~~
steveklabnik
This is a great question, with a lot of details. So, let's start from the
beginning.

In a sense, there _is_ a version for each version of the language:

    
    
      * https://doc.rust-lang.org/1.8.0/book/
      * https://doc.rust-lang.org/1.9.0/book/
      * https://doc.rust-lang.org/1.10.0/book/
    

etc. Since the current book is stored in-tree, this is just part of the
regular release cycle. That said, I haven't been working on the book because
I've been working on the new book, so it's largely the same, just with some
typos.

The second bit is, thanks to the stability guarantees, these days, the book
doesn't really go out of date. Everything works. That said, there are
sometimes new features added that it doesn't always cover; this is really
tricky in general. There's an overall tension here, since it's an official
project: I feel the need to be comprehensive, yet a good text is often defined
just as much by what you leave out as what you put in. So the book tries to be
_mostly_ comprehensive, but not totally so. So it's okay if new features
aren't immediately in the book.

This also ties into Rust itself, and something the team has been thinking a
lot about. With most languages, you have major releases in order to sort of
chronicle the language through history: new idioms, new features, etc. With
our release schedule, and no plans to make a "2.0, major breaking changes
everything is different" release, we don't have that normal point to tell the
story of how Rust is changing. So I can imagine that major updates to the book
will happen along these same "epochs", as Rust changes over time. We're still
trying to figure that all out, though. But the key is that many Rust releases
aren't game-changing: only some features actually change idioms.

Finally, No Starch will be publishing the book in paper form. So there's also
the question of that, but at the moment, we're mostly interested in shipping
this one, but everyone is on board with _some_ sort of periodic refresh of the
printed edition as well. We'll see how it goes.

Does that make sense?

~~~
ronjouch
Related: I understand the versions hosted at doc.rust-lang.org you mention
above, but what's about the version linked in your post? ( [http://rust-
lang.github.io/book/](http://rust-lang.github.io/book/) ). It's what's in
master right now, right?

EDIT ah, [https://github.com/rust-lang/book](https://github.com/rust-
lang/book) clarifies this, it's a rewrite, and is not (yet) part of the main
Rust repository.

~~~
steveklabnik
The version hosted on docs.rust-lang.org is the current edition of the book,
whose source is in-tree. [https://github.com/rust-
lang/rust/tree/master/src/doc/book](https://github.com/rust-
lang/rust/tree/master/src/doc/book)

In order to not trash the book while we're doing the re-write, we've moved it
to a new repository, which is the one you've linked.

When the new book is ready, we will either merge it into `src/doc/book` or
remove the book from the main repository and use rust-lang/book as the new
official source, it's not totally clear yet which.

~~~
carols10cents
> When the new book is ready, we will either merge it into `src/doc/book` or
> remove the book from the main repository and use rust-lang/book as the new
> official source, it's not totally clear yet which.

Also, no matter which of these two options we choose, we still plan to ship
the book inside installations of Rust for offline reading, and host the book
on docs.rust-lang.org.

------
steveklabnik
Hi all! As always, happy to answer questions here.

~~~
kevinmgranger
The Rust Programming Language remains as one of the best introductions I've
had to a new programming language. I thank you for your work on it.

~~~
bluejekyll
Yes, and the work on the documentation in general. It's amazing. So many other
young languages are crap in this area, even mature ones. I think the thing
that makes Rust amazing is that it's young, and yet well documented, making it
easier to get started.

Can't thank you enough, nice work.

------
doppp
Has anyone used Rust for game development? I know about the Piston engine but
has anyone successfully released a commercial game on Windows, Mac OS X and
Linux with it or is it still pretty much an academic endeavour to make games
in Rust?

~~~
rsaarelm
I've been developing a hobby game engine and did a 7-day roguelike with it
last year:
[https://github.com/rsaarelm/phage](https://github.com/rsaarelm/phage)

I'd say it's about on par with C++, effort-wise. Big learning curve to get
something as complex as a game off the ground, and you need to think about the
design, but I can't think of many long-term annoyances. The ecosystem is still
sparse, so viable game projects will probably skew towards 2D and otherwise
modest scale.

------
dman
One feature request - could the book be made available in info format so that
its idiomatically integrated into emacs?

~~~
steveklabnik
Is there a good markdown -> info converter? I don't use emacs.

~~~
dbaupp
The default answer for "is there a X to Y?" converter for text formats is
pandoc, so one could possibly go markdown -(pandoc)-> texinfo -(makeinfo)->
info. I do not know if this is sufficiently high fidelity.

~~~
dman
Will give this pipeline a shot and see what the results look like.

------
seeekr
OT/typo: "and I’m proud to have her name next time mine on the cover" should
have -time and +to. Keep up the good work!

~~~
steveklabnik
Gah, thanks!

