http://www.perlmonks.org?node_id=731670


in reply to Re^3: Five Features Perl 5 Needs Now
in thread Five Features Perl 5 Needs Now

I deliberately chose the smallest, easiest syntax change which represented a useful feature, and the negative responses have been:

It's no surprise there's a lack of volunteers lining up to add and maintain features for Perl 5. I'm motivated or stupid or gullible or stubborn enough to have patched Perl 5's parser and lexer twice this year. I don't mind doing hard work, but I'm not motivated or stupid or gullible or stubborn enough to waste my time if there's no chance my work will ever be used.

Update: Rephrased the Moose comment to reflect reality more clearly.

Replies are listed 'Best First'.
Re: Sometimes I'd Rather Punch Myself in the Head
by perigrin (Sexton) on Dec 19, 2008 at 22:52 UTC

    The Moose hackers don't want to commit to any syntax, and they don't want their code in the core. (This is the Perl 6 syntax which has remained stable for longer than Moose has existed. I had a hand in the Perl 6 object system, as you know.)

    That's not exactly fair. One you're lumping "the Moose hackers" in together, be specific. I know autarch didn't comment on that thread, nor did Sartak, nor did nothingmuch or stevan. That covers everybody who's made an official release of Moose in the last year or two, and the top 4 Moose committers. As someone who has contributed to Moose, I *support* your patch, I just don't have any skills with C to do more than cheer you on. I know that others (who may have the skills) do as well, including Florian and mst who're responsible for MooseX::Declare.

    Two, Moose people don't want Moose in Core for specific reasons. Most of the people who have released core have said (and sadly not in a public forum) that if Perl were on a stable and frequent enough release schedule that would obliviate the major complain that core == death. I have argued with you elsewhere that I think *core* should be as minimal as possible and things like Moose should live outside. Perhaps I should clarify, "should live outside until the someone decides that they're important enough to be made part of the default language". Your class patch is something that I think should be made part of the default language for roughly the reasons you've expressed elsewhere.

    Before slagging on "The Moose hackers", please actually verify that "The Moose hackers" need slagging and that you're not just reacting to one or two loud and opinionated people.

      One you're lumping "the Moose hackers" in together, be specific.

      You're right; I based that off of a response from Jonathan Rockway and didn't ask anyone else. I'll update my rant accordingly.

      I'd certainly be happy to get some public comment from people who like the idea of the class patch, as well as people who'd like to see more frequent stable releases. Sometimes I feel like Cassandra trying to homestead an undiscovered country (to mix metaphors).

        You're right; I based that off of a response from Jonathan Rockway and didn't ask anyone else.

        Yeah. I discarded a reply to Jon because while I like him and agree with him on several things (including his points here in *general*1), I disagree with him in specific on your patch. I didn't feel I should reply on p5p because, not being a C programmer I had no substantial way to help improve the process other than to say "this is awesome." Next time I'll respond and make sure that you understand that the Moose Hackers (all hundred and something of us) aren't a united front. :)

        1: I think that things like Devel::Declare let you test out syntax changes and see what works and what doesn't outside of core ... and once you find something that a sufficient number agree is cool and useful it should be moved into core. Jon, I believe, doesn't see why you shouldn't just expand the definiton of "Perl" to include "CPAN". I've worked in environments where that was Hard.

Re: Sometimes I'd Rather Punch Myself in the Head
by xdg (Monsignor) on Dec 20, 2008 at 12:41 UTC

    In case it wasn't clear, I was referring to responses to the "5 things" article and I was actually agreeing with you (or defending you) that one should be able to get on a bully pulpit and offer up a wish list without being told to get down and write some code.

    FWIW, I'm on the p5p list, liked the class keyword idea you wrote (and re-wrote) -- albeit with feature (see next para) -- and stopped reading the threads in the end after it got too depressing to see endless objections to progress. (We're talking 5.12 for pete's sake, people!)

    Regarding feature -- while it's annoying to stick use 5.NNN at the top of a file (which is what we have boilerplate and macros for), I thought that was the tradeoff so we could add new things and not break old things. That seemed like a perfect solution to the issue.

    All the other objections people raised just seem pointless to me.

    -xdg

    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

      This is one reason writing code to support a feature is often more useful than writing a wishlist; code is less ambiguous than English.

      I still do think that feature is the wrong approach. I'd rather see the burden of forwards compatibility placed on upgraders. What if we had a module which removed the new features added by default? If you're upgrading a large codebase, you can write use feature limit => 5.006; or something, rather than forcing all potential future code to enable new features explicitly.

        I don't like "feature" so much myself, but I can live with it as long as use 5.010 also does use feature ':5.010'. I think it's helpful if code is explicit about the version it expects because then it also fails somewhat gracefully if attempted on older Perls.

        Of course, what's I'd also like is this, eventually:

        use 5.012; # strict on, warnings on, features up to 5.12 on

        -xdg

        Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

        I'd rather see the burden of forwards compatibility placed on upgraders.

        ++If only...

        This pseudo-ideal of perpetual backward compatibility is a chain around the neck of software development.

        Imagine if new cars still had drum brakes & leaf springs; 4-speeds & no synchromesh; manual windows, AM radios & 8-track stereos; cast iron blocks, carburators & distributors with rotor arms.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
Re: Sometimes I'd Rather Punch Myself in the Head
by Sartak (Hermit) on Dec 19, 2008 at 23:32 UTC

    I like the work you're doing for class. I'd love it to be easier to do OO in core Perl. I hope that someday we'll get to rework Class::MOP to use the keyword.

    Easier OO in core is exactly why I recommended coring Class::Accessor (which you thought was a dumb suggestion). It's certainly not a complete OO system, but it is a start; one that is mature and widely used. Baby steps, just like the class keyword!

    I agree with practically everything you've been saying and doing. I'm sure many others do, but it can be hard to vocalize support other than saying "me too". Please don't be discouraged!

      I should elaborate. There's nothing wrong with Class::Accessor; it's just not in and of itself a replacement for the class keyword.