Rust In Action - T.S. McNamara

GoodReads Summary: Rust in Action introduces the Rust programming language by exploring numerous systems programming concepts and techniques. You'll be learning Rust by delving into how computers work under the hood. You'll find yourself playing with persistent storage, memory, networking and even tinkering with CPU instructions. The book takes you through using Rust to extend other applications and teaches you tricks to write blindingly fast code. You'll also discover parallel and concurrent programming. Filled to the brim with real-life use-cases and scenarios, you'll go beyond the Rust syntax and see what Rust has to offer in real-world use cases.

★★★★☆

The version of this book I got is not the final version, it's part of Manning Early Access Program, which allows people to read and participate in "constructing" a book. A lot of things may change in the final version, so be aware of this.

I have to say, I don't buy the "introduces the Rust programming language" part of the description. A few points seem related to people that already have some knowledge about the language, and jumping straight to some non-trivial problem appears to skip a few "introduction" points, in my opinion.

One have to ask what "in Action" means. Sure, you'll write your one RFC 754 for dealing with floating points, so you can understand why some floating values get to 6.000000000001, and while you won't ever write your own floating point processor, you have to ask yourself: What is being explained about Rust here? Sometimes, the problems feel more like "I want to solve this" than "I want to explain this feature of the language", while it should be the other way around.

Another confusing point: The output of a program appears before its code. While not that weird, you end up with some sections showing the output, explaining a bit and then, way later, you get the code what actually produces that output. I remember reading a bit about the output and some discussion about it and I got really confused about what was producing that output.

The Rust part seems a bit out-of-date, too. There are some extern crate, which is optional at this point. Updating the code to reflect the latest version of the language (the syntax, that is) would be better.

On the other hand, I have to give the author the props for managing to explain things really well. Why you should use something, how can you apply different things to the same data and so on. That's the book greatest strength.

So, is it a bad book? Not at all. It has some quirks, but overall is well explained and, if you keep an eye on the language from outside, it answers a lot of stuff that you won't figure out anywhere else.