Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
just look at like the last 2/3rds of Damians OO book, it is full of overly clever tricks that should never be done in the real world. At some point people just need to get work done.

Maybe it's been a while since you actually read Damian's OO book, because that's not how it seems to me.

Of the 14 chapters, the first two give good general introductions to the concepts of OO and the bits of Perl you need to understand to understand OO Perl. The nest five explain the basic way Perl OO works (though Chapter 5--on blessing non-hashes--has a lot of stuff that most developers would never need). Chapter 8 explains two outdated approaches to class creation (i.e. earlier and more easily understood versions of what Moose does now). Chapter 9 explains ties (which certainly are overly clever). Chapter 10 looks at operator overloading (and the last third of the chapter actually counsels against clever tricks). Chapter 11 covers several outdated approaches to encapsulation (which I know you don't consider important, but some of us do). Chapter 12 works through a simple example of polymorphic design. Chapter 13 looks at multiple dispatch (a "trick" so useful that it's now fundamental to, and used everywhere in, Perl 6). The final chapter shows a whole lot of definitely overly clever tricks for creating object persistence mechanisms.

So there are clearly "overly clever tricks" in chapters 9 and 14, and arguably some in parts of chapters 5, 11, and 13. By my count that's about 100 pages out of 490, or around 20%. Instead of 2/3 of the book being wrong-headed, it seems to me that the first 40% of it is an good solid introduction to the way OO Perl actually works; and that most of the rest of consists of useful, but non-essential, explanation too. Not bad for a book written a decade ago.

Personally, I'd rather have developers who have read Damian's OO book and therefore understand the underlying Perl OO mechanisms that Moose uses (or sometimes replaces), than have developers who don't understand how Perl OO actually works and just treat Moose as a magic wand.

In reply to Re^12: OO automatic accessor generation by Anonymous Monk
in thread OO automatic accessor generation by Neighbour

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (2)
As of 2023-09-23 12:19 GMT
Find Nodes?
    Voting Booth?

    No recent polls found