in reply to Ruby Before Perl? Nah.

Thanks for a well written and balanced treatment. ++

Question: Perl OO being blessed references gives preference to creating HAS-A relationships whereas Ruby's 'everything is an object' should gives preference to creating IS-A relationships. Did you find this to be true? In other words, theory says that Inheritance should be cleaner in Ruby while Aggregation should be cleaner in Perl. For myself, I don't have any experience with Ruby so I would appreciate any insight you can give.

s//----->\t/;$~="JAPH";s//\r<$~~/;{s|~$~-|-~$~|||s |-$~~|$~~-|||s,<$~~,<~$~,,s,~$~>,$~~>,, $|=1,select$,,$,,$,,1e-1;print;redo}

Replies are listed 'Best First'.
Re^2: Ruby Before Perl? Nah.
by starX (Chaplain) on Jun 04, 2008 at 15:18 UTC
    Short answer: yes.

    Slightly more long winded answer: Inheritance in Ruby is a perfectly natural thing to do from the Java OOP's perspective. The syntax is different, of course, but the fundamentals of non-multiple inheritance remain the same. There are Java-like interfaces available to fake multiple inheritance, but the project I was working on wasn't complicated enough to need them.

    After reading your post, I think I understand *why* I've found OO in Perl to be as cumbersome as I have; I have a tendency to think about objects in ISA terms. For what it's worth, the initial specs for the project were looking at modeling from a HASA perspective (a top down approach). This quickly proved cumbersome, and it made more sense to look at it from the ISA perspective, which is a lot more bottom up.

    I can't say if this speaks more to my personality or my programming ability than it does to the nature of the language though. I'm sure modeling the HASA relationships would have been easier to do if I had more of a background in UML or Perl OO rather than Java, but the inheritance features of Ruby certainly make ISA modeling straightforward and easy to do.

    Hope I managed to give you an intelligent answer somewhere in there :)