Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
One problem with Perl OO is that it does not deliver everything OO requires in theory. That we all see it, and I saw you agreed.

Actually, what I said was "It lacks useful things like direct support for private methods/attributes. However, these can be implemented using other language features. It's rarely an issue in real world code in my experience." (my emphasis).

Perl's OO model has good and bad points. Personally I prefer Perl's OO and dynamic typing to Java's lack of multiple-implementation inheritance and lack of generic classes.

I'm not anti-strong typing. When done well (e.g. Eiffel) it can be a god send. With Java's lack of generics it can be a complete pain.

Another big problem I see with Perl OO is that, becasue of Perl OO is usually implemented as hash, and Perl hash takes lots of memory, this "bad" combination actually make things worse.

If memory is an issue. Like speed it often isn't. When it is, there are alternate mechanisms for representing objects. I have never had memory problems due to using hashes as objects.

I think something need to be done about this, before Perl's OO can be 100% accepted by me, actually not just me ...

Perl 6 will be providing most of what is "hard" to do directly in Perl 5.

If you're unhappy with Perl 5's "default" OO model you have the flexibility to write your own. Witness such neat modules as Class::Contract.

In reply to Re^9: Teach him a lesson with facts by adrianh
in thread Teach him a lesson with facts by Anonymous Monk

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

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

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

    How do I use this? | Other CB clients
    Other Users?
    Others avoiding work at the Monastery: (3)
    As of 2020-10-27 19:03 GMT
    Find Nodes?
      Voting Booth?
      My favourite web site is:

      Results (257 votes). Check out past polls.