Disclaimer: I was a reviewer of POODR, and my name is in the 'thanks' section.
SBPP is a classic for years, and POODR is new, so it's hard to make a comparison. SBPP takes a little bit more effort to apply to Ruby, as Ruby's features are a bit different than Smalltalk's. POODR is excellent, but the one thing that I don't like about it is that it uses the physical metaphor for objects: bikes and wheels and mountain bikes. Getting out of the mindset that objects were only for physical analogues was one of the hardest things for me to level up with in OO design, so that part was slightly disappointing. But everything else about POODR is great, and I'd recommend it to anyone who programs in dynamically typed languages.
The closer the book to the language you'd like to apply to the better it is. Nothing beats applying it in real-life regardless whether it's a classic or not.
Case and point: Singleton design pattern in Java (and JVM) vs Singleton design pattern in C++. Try implementing it in a production environment and make sure it is thread-safe, network-safe (can be sent through the wire), etc. You'll end up with different approaches.
I recently bought the ebook and have been reading it when I have spare time. So far I can say that the writing style has been excellent...and the concepts of OOP and how an abstract app is refactored under good OOP practices is so clear that I don't know if she's covering relatively basic OOP material or if it seems simple because she explains (and diagrams) it so well. I suspect it's more of the latter.
Comments
Can anyone comment on "Practical Object-Oriented Design in Ruby" vs. "Smalltalk Best Practice Patterns"?
Disclaimer: I was a reviewer of POODR, and my name is in the 'thanks' section.
SBPP is a classic for years, and POODR is new, so it's hard to make a comparison. SBPP takes a little bit more effort to apply to Ruby, as Ruby's features are a bit different than Smalltalk's. POODR is excellent, but the one thing that I don't like about it is that it uses the physical metaphor for objects: bikes and wheels and mountain bikes. Getting out of the mindset that objects were only for physical analogues was one of the hardest things for me to level up with in OO design, so that part was slightly disappointing. But everything else about POODR is great, and I'd recommend it to anyone who programs in dynamically typed languages.
Really, you should own and read them both.
I like the bike/wheel/rental place examples; it helped me conceptualize what she was talking about.
That said, I would love to read a sequel that deals with more abstract objects that sync or authenticate or what have you.
The closer the book to the language you'd like to apply to the better it is. Nothing beats applying it in real-life regardless whether it's a classic or not.
Case and point: Singleton design pattern in Java (and JVM) vs Singleton design pattern in C++. Try implementing it in a production environment and make sure it is thread-safe, network-safe (can be sent through the wire), etc. You'll end up with different approaches.
I recently bought the ebook and have been reading it when I have spare time. So far I can say that the writing style has been excellent...and the concepts of OOP and how an abstract app is refactored under good OOP practices is so clear that I don't know if she's covering relatively basic OOP material or if it seems simple because she explains (and diagrams) it so well. I suspect it's more of the latter.