in reply to Re^6: Moose and caller() for current method
in thread Moose and caller() for current method

Proscriptive teaching only works for those situations that the proscriptions cover.

  • Comment on Re^7: Moose and caller() for current method

Replies are listed 'Best First'.
Re^8: Moose and caller() for current method
by chromatic (Archbishop) on Jul 14, 2010 at 02:13 UTC

    I have the impression that people who actually read the book might characterize it differently.

      Actually have read the draft. A few examples:

      1. Whatever happened to (from "Programming Perl" third edition: section 2.5):
        One of the design principles of Perl is that different things should look different. Contrast this with languages that try to force different things to look the same, to the detriment of readability.

        How does that sit with your take on lexical file handles?

      2. "You can disambiguate this with the postfix package separator (::), but that's rare and admittedly ugly:"

        What is "ugly" about two colons?

        That is nothing but capricious subjectivity. It has no place in a teaching document.

      3. Indirect objects.

        Re-read your stance on indirect object notation. Consider the reason sited for not using it ("rare").

        Consider also the suggestion: "Alternately, consider loading the core IO::Handle module which allows you to perform IO operations by calling methods on filehandle objects".

        And we're back to making everything look the same. Pure dogma!

      I could go on (and on), but there would be little point. You've lost sight of what makes Perl so productive. Of what makes Perl, Perl.

      (BTW: Why is it that your denials of previous accepted wisdom is legitimate; but my expression, of my reservations of your opinions: "libellous"?)

        How does that sit with your take on lexical file handles?

        All things being equal, the principle of distinction is useful.

        All things are not equal in this case, especially considering issues of global variables and the complexity of localization versus automatic scope destruction and RAII. What should they look like, and what leads you to believe that the addition of lexical filehandles to Perl 5.6 violated the principle of distinction?

        What is "ugly" about two colons?

        The asymmetry of Package::Name:: and its virtual unuse.

        And we're back to making everything look the same.

        Do yourself the favor of reading the rest of the chapter, especially the explanation of why indirect object notation is unreliable.

        You've lost sight of what makes Perl so productive. Of what makes Perl, Perl.

        I find it difficult to believe that Perl's productivity comes from the wanton use of global variables and syntactic constructs with parsing ambiguity.

        ... my expression, of my reservations of your opinions: "libellous"?

        Easy! If you were to write "I think your advice is silly," that's obviously your opinion. If, instead, you write "Your intent is merely to make everyone write code your capricious way for no obvious reason," you've produced libel. (Update: Note the use of the subjunctive mood in this paragraph.)

        You may have the last word in this thread, as usual.