The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.9 KiB

+++
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.
<!-- more -->
{{ 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.