Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

design patterns in ruby: any good?

3 views
Skip to first unread message

Giles Bowkett

unread,
Jan 8, 2008, 11:46:20 AM1/8/08
to
Has anybody read it? Does it come recommendafied? I still haven't
found a great tech bookstore in Los Angeles so I haven't browsed it.

--
Giles Bowkett

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com

pat eyler

unread,
Jan 8, 2008, 11:50:57 AM1/8/08
to
On Jan 8, 2008 9:46 AM, Giles Bowkett <gil...@gmail.com> wrote:
> Has anybody read it? Does it come recommendafied? I still haven't
> found a great tech bookstore in Los Angeles so I haven't browsed it.
>

I liked it. If you'd like the overview, I reviewed it here:

http://on-ruby.blogspot.com/2007/12/design-patterns-in-ruby-review.html

--
thanks,
-pate
-------------------------
Duty makes us do things, Love make us do things well.
http://on-ruby.blogspot.com http://on-erlang.blogspot.com
http://on-soccer.blogspot.com

aema...@gmail.com

unread,
Jan 8, 2008, 1:15:37 PM1/8/08
to
I'm almost finished and I'm liking it. It helps me put my thoughts
ordered and I have learned a few things too.

AEM

Giles Bowkett

unread,
Jan 8, 2008, 1:26:42 PM1/8/08
to
> > Has anybody read it? Does it come recommendafied? I still haven't
> > found a great tech bookstore in Los Angeles so I haven't browsed it.
>
> I liked it. If you'd like the overview, I reviewed it here:
>
> http://on-ruby.blogspot.com/2007/12/design-patterns-in-ruby-review.html

Excellent review! Gives me an idea for a good blog post, too -
patterns and idioms in the Rails source.

Jake Cutter

unread,
Jan 8, 2008, 2:08:06 PM1/8/08
to
On Jan 8, 2008 1:26 PM, Giles Bowkett <gil...@gmail.com> wrote:
> > > Has anybody read it? Does it come recommendafied? I still haven't
> > > found a great tech bookstore in Los Angeles so I haven't browsed it.
> >
> > I liked it. If you'd like the overview, I reviewed it here:
> >
> > http://on-ruby.blogspot.com/2007/12/design-patterns-in-ruby-review.html
>
> Excellent review! Gives me an idea for a good blog post, too -
> patterns and idioms in the Rails source.

Nice review, but coverage of the GoF patterns? But I've read so many
otherwise intelligent folks say that the GoF patterns were created to
address the limitations of less flexible languages, and that there's
no need for them in a language as powerful as Ruby...

What gives?

Jake

Jake Cutter

unread,
Jan 8, 2008, 2:08:41 PM1/8/08
to
On Jan 8, 2008 1:26 PM, Giles Bowkett <gil...@gmail.com> wrote:
> > > Has anybody read it? Does it come recommendafied? I still haven't
> > > found a great tech bookstore in Los Angeles so I haven't browsed it.
> >
> > I liked it. If you'd like the overview, I reviewed it here:
> >
> > http://on-ruby.blogspot.com/2007/12/design-patterns-in-ruby-review.html
>
> Excellent review! Gives me an idea for a good blog post, too -
> patterns and idioms in the Rails source.

Nice review, but coverage of the GoF patterns? But I've read so many

Giles Bowkett

unread,
Jan 8, 2008, 3:03:04 PM1/8/08
to
> Nice review, but coverage of the GoF patterns? But I've read so many
> otherwise intelligent folks say that the GoF patterns were created to
> address the limitations of less flexible languages, and that there's
> no need for them in a language as powerful as Ruby...
>
> What gives?

I was wondering about that myself. I think the Singleton pattern gets
used a lot in Ruby, though. Definitely a question worth asking.

James Gray

unread,
Jan 8, 2008, 3:11:06 PM1/8/08
to
On Jan 8, 2008, at 2:03 PM, Giles Bowkett wrote:

>> Nice review, but coverage of the GoF patterns? But I've read so many
>> otherwise intelligent folks say that the GoF patterns were created to
>> address the limitations of less flexible languages, and that there's
>> no need for them in a language as powerful as Ruby...
>>
>> What gives?
>
> I was wondering about that myself.

Ruby isn't immune to design patterns.

Some patterns are very trivial in Ruby (Visitor is basically just a
method that takes a block), and some others don't make as much sense
in Ruby (Factory isn't nearly as important with classes being objects
themselves). Ruby also inspires some new patterns, I believe. The
ideas that led to the design patterns and many of the patterns still
apply to Ruby in some fashion though.

James Edward Gray II

Thomas Wieczorek

unread,
Jan 8, 2008, 4:02:26 PM1/8/08
to
On Jan 8, 2008 8:08 PM, Jake Cutter <cutt...@gmail.com> wrote:
>
> Nice review, but coverage of the GoF patterns? But I've read so many
> otherwise intelligent folks say that the GoF patterns were created to
> address the limitations of less flexible languages, and that there's
> no need for them in a language as powerful as Ruby...
>
> What gives?
>

IMO, patterns give you a common vocabulary to speak with other
developers and a way to refactor existing code.
Raganwald wrote a good blog entry about it
http://weblog.raganwald.com/2008/01/problem-with-problem-with-design.html

Michael Brooks

unread,
Jan 8, 2008, 8:37:29 PM1/8/08
to
Giles Bowkett wrote:
> Has anybody read it? Does it come recommendafied? I still haven't
> found a great tech bookstore in Los Angeles so I haven't browsed it.

Hello Giles:

You may also find this Scribd document interesting:

http://www.scribd.com/doc/396559/gof-patterns-in-ruby

There are also a couple of other interesting documents regarding ruby on
Scribd (try a search for ruby) like

http://www.scribd.com/doc/266840/Ruby-Code-Snippets

Michael


Giles Bowkett

unread,
Jan 8, 2008, 9:29:31 PM1/8/08
to
> Hello Giles:
>
> You may also find this Scribd document interesting:
>
> http://www.scribd.com/doc/396559/gof-patterns-in-ruby

Gracias! It was useful actually -- I forgot about Singleton being in
the std lib.

Pat's review says the book covers only 14 of the GoF's original 23
patterns, I think that's the explanation for the disparity between
"Ruby makes design patterns useless!" vs. "design patterns can be
useful in Ruby." Presumably the missing 9 are considered either not
necessary, or just less interesting, in Ruby.

M. Edward (Ed) Borasky

unread,
Jan 8, 2008, 10:04:42 PM1/8/08
to
Giles Bowkett wrote:
>> Nice review, but coverage of the GoF patterns? But I've read so many
>> otherwise intelligent folks say that the GoF patterns were created to
>> address the limitations of less flexible languages, and that there's
>> no need for them in a language as powerful as Ruby...
>>
>> What gives?
>
> I was wondering about that myself. I think the Singleton pattern gets
> used a lot in Ruby, though. Definitely a question worth asking.
>

Well ... I have the book. I'm totally unfamiliar with the GoF book. I
know it's a classic, but I've just never gotten around to learning
design patterns. So I got the book and I like it. If you're already an
expert on design patterns from another language, for example, from "Head
First Design Patterns" (Java) I rather doubt you'll learn anything from
this book that you don't already know. But for me, it's exactly what I
need. :)

Dean Wampler

unread,
Jan 8, 2008, 10:42:25 PM1/8/08
to
[Note: parts of this message were removed to make it a legal post.]

Here's a good blog on this "controversy"
http://peripateticaxiom.blogspot.com/2008/01/problem-with-problems-with-patterns.html

dean


--
Dean Wampler
http://www.objectmentor.com
http://www.aspectprogramming.com
http://aquarium.rubyforge.org
http://www.contract4j.org

John Wilger

unread,
Jan 8, 2008, 11:44:08 PM1/8/08
to
On Jan 8, 8:46 am, Giles Bowkett <gil...@gmail.com> wrote:
> Has anybody read it? Does it come recommendafied? I still haven't
> found a great tech bookstore in Los Angeles so I haven't browsed it.

I thought it was well written. Personally, I didn't really learn
anything new from it, but I've strongly suggested that the less
experienced developers on my team give it a read. Perhaps it's got
something to do with the fact that it uses Ruby to discuss the
patterns, but the book also seems to be more approachable than its GoF
counterpart. (Could also just be that I've had a lot more experience
with such things since I read the GoF book the first time.)

--
Regards,

John Wilger

pat eyler

unread,
Jan 11, 2008, 9:37:41 AM1/11/08
to

I didn't want to say anything when this was first asked, because I was in
the middle of an interview with Russ Olsen (the author) at that point. I just
posted the interview this morning, so if people are still wondering why
design patterns are important even in a language like Ruby, you might
want to take a look:

http://on-ruby.blogspot.com/2008/01/russ-olsen-interview.html

>
> Jake

Thomas Wieczorek

unread,
Jan 11, 2008, 10:29:12 AM1/11/08
to
On Jan 11, 2008 3:37 PM, pat eyler <pat....@gmail.com> wrote:
>
> I didn't want to say anything when this was first asked, because I was in
> the middle of an interview with Russ Olsen (the author) at that point. I just
> posted the interview this morning, so if people are still wondering why
> design patterns are important even in a language like Ruby, you might
> want to take a look:
>
> http://on-ruby.blogspot.com/2008/01/russ-olsen-interview.html
>

Thank you for the interview! I think I go and buy the book right now.

Russ Olsen

unread,
Jan 14, 2008, 5:30:06 PM1/14/08
to
M. Edward (Ed) Borasky wrote:
>
>
> Well ... I have the book. I'm totally unfamiliar with the GoF book. I
> know it's a classic, but I've just never gotten around to learning
> design patterns. So I got the book and I like it. If you're already an
> expert on design patterns from another language, for example, from "Head
> First Design Patterns" (Java) I rather doubt you'll learn anything from
> this book that you don't already know. But for me, it's exactly what I
> need. :)

Far be it for me to disagree with someone who seems about ready to buy
my book, but... oh well.

You see, I think that if you picked up a book on design patterns in Java
on your way to writing a program in Ruby, you will be making a serious
mistake. As others have pointed out, Ruby is different from Java and the
other traditional programming languages in some serious ways: open
classes,
and dynamic typing to name just a couple.

What I did in the book was to stand back and look at each pattern and
ask
a couple of questions: "What problem is this pattern trying to solve?"
and, critically, "How do people typically solve this problem in Ruby?"

Turns out that sometimes the Ruby solution is pretty much the same as
the Java solution. A Composite in Ruby is pretty much the same as a
Composite in Java. But for many of the patterns - here Commands and
Iterators come to mind - the Ruby solution is radically different
than the Java solution. Why? Those are the kind of questions that I
tried to answer in the book.

One of the nice things about Ruby is that many problems are much easier
to solve. The last thing we need is folks writing Java or C# code in
Ruby. We need people writing Ruby in Ruby.


--
Posted via http://www.ruby-forum.com/.

0 new messages