It s easy to write correct Ruby code, but to gain the fluency needed to write great Ruby
code, you must go beyond syntax and absorb the Ruby way of thinking and problem
solving. In Eloquent Ruby, Russ Olsen helps you write Ruby
like true Rubyists do so you can leverage its immense, surprising power. Olsen draws on
years of experience internalizing the Ruby culture and teaching Ruby to other
programmers. He guides you to the Ah Ha! moments when it suddenly becomes clear why
Ruby works the way it does, and how you can take advantage of this language s elegance
and expressiveness. Eloquent Ruby starts small, answering
tactical questions focused on a single statement, method, test, or bug. You ll learn
how to write code that actually looks like Ruby (not Java or C#); why Ruby has so many
control structures; how to use strings, expressions, and symbols; and what dynamic
typing is really good for. Next, the book addresses bigger questions related to building methods and classes. You ll discover why Ruby classes contain so many tiny methods, when to use operator overloading, and when to avoid it. Olsen explains how to write Ruby code that writes its own code and why you ll want to. He concludes with powerful project-level features and techniques ranging from gems to Domain Specific Languages. A part of the renowned Addison-Wesley Professional Ruby Series, Eloquent Ruby will help you put on your Ruby-colored glasses and get results that make you a true believer."
Reviews:
Review 1
Review #1 Title: The first Ruby book I read in full within 24 hours
Reviewer #1: Peter Cooper
Review #1 Date: February 26, 2011
This book is so easy to read yet so useful and informative that I read it in its entirety within 24 hours (across 2 distinct days admittedly ;-)). Eloquent Ruby is a book published by Addison Wesley and
written by
Russ Olsen (who also wrote Design Patterns in Ruby a few years ago). It clocks in at around 400 pages and has 31 chapters clocking in at around a punchy 10 pages each. Each chapter is titled as a guideline you should follow to write "eloquent" Ruby - things like Create Classes That Understand Equality and Write Code That Looks Like Ruby - and typically the claim is explained, some code examples shown and discussed, some real world examples pointed to, and that's it. As with Design Patterns in Ruby, Russ adopts a chatty, familiar tone. Reading this book is like reading a book specifically written for you by a friend. He doesn't shoot off on many unnecessary tangents and he keeps the stories short and sweet but this book certainly couldn't be called dry.
The book is also notably short of egregious errors or omissions. Even when I don't read something with a fine-toothed comb on standby, I can usually pick out a laundry list of factual and grammatical errors or omissions (as both Obie Fernandez and my wife will attest) but Eloquent Ruby gave me little to chew on. I can only bring to mind a few spacing and formatting issues and only one true "error": a > instead of a < in a class definition on a single example.
Russ tries to remain neutral with his choice of Ruby implementations but the book seems to focus primarily on Ruby 1.9 (Ruby 1.9.1 specifically but that's just due to when he wrote it) while providing useful footnotes in the cases where there are differences to Ruby 1.8. No matter what Ruby implementation you're using, there's little to confuse you as most of it is very non-implementation and non-version specific.
I wholeheartedly recommend this book to anyone except those who, well, could have written a similar book themselves. The short punchy chapters make it a delight to read and gives the option of reading it merely 10 minutes at a time before bed or similar. The short chapters also make it useful as a reference if you forget how to do a certain thing like, say, use method_missing, even though it's not put together as a reference book at all. Lastly, this book is a must read if you're not confident with Ruby idioms and the best way to structure and lay out your code - Russ's approaches reinforce the current "standard" way to write Ruby and this alone is worth the price of admission.