I’m porting over my review of Ruby Under a Microscope from Amazon.com (link to the review) because I was in the process of migrating my content from my old blog to this blog and did not have a platform where I could post reviews. Enjoy!
TL;DR: » This book does an excellent job of explaining the C implementation of Ruby. It’s very well organized and takes you on a step by step journey through Ruby. It’s mainly focused on the C implementation but it does describe other implementations, albeit with not as much detail as I would have liked.
If you’re curious for how things work (like me), you’ll really enjoy this book. The seemingly “magic” things that Ruby does all have a clear and straightforward, step-by-step, explanation.
What I liked:
- The book is well organized and explains some very complicated topics in a very understandable way.
- Figures are repeated so you don’t have to flip back and forth (a little thing but very helpful)
- Has a very computer-science-like feel to it. It’s a fun read if you’re a computer science geek like me.
What I didn’t like:
- The chapter on JRuby is severely lacking in my opinion. Given that the other chapters did a nice deep dive on the given topic, I felt a little bit cheated on the JRuby chapter. This was more of a really broad overview of JRuby with one or two examples.
- The book explains a complicated topic in several chapters but you’re left to put everything together on your own. I would have liked to have seen one additional chapter that took a sufficient Ruby program and did a full walk through of all the concepts you’d learned in the previous chapters; basically, a top to bottom overview chapter.
Who can/should read this:
- Anyone interested in programming languages or implementing your own programming language.
- Those who want to become better Ruby developers.
- You’ll need to know a little bit of C to understand the standard Ruby implementation examples but other than that, there’s no prereqs. You don’t really even need to know Ruby that well ( I don’t ). If you don’t understand what the piece of Ruby code is doing, it’s easy to look up online to quickly figure out what it does.