diff --git a/content/reviews/books/rust-in-action.md b/content/reviews/books/rust-in-action.md new file mode 100644 index 0000000..bc0bf91 --- /dev/null +++ b/content/reviews/books/rust-in-action.md @@ -0,0 +1,61 @@ ++++ +title = "Rust In Action - T.S. McNamara" +date = 2020-04-28 + +[taxonomies] +tags = ["books", "reviews", "rust", "t s mcnamara"] ++++ + +[GoodReads Summary](https://www.goodreads.com/book/show/45731908-rust-in-action): +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. + + + +{{ stars(stars=4) }} + +{% note() %} +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. +{% end %} + +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.