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


in reply to Sometimes I'd Rather Punch Myself in the Head
in thread Five Features Perl 5 Needs Now

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.

Replies are listed 'Best First'.
Re^2: Sometimes I'd Rather Punch Myself in the Head
by chromatic (Archbishop) on Dec 20, 2008 at 19:26 UTC

    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 could get used to that idea as well. I don't like the idea of multiplying even more entities to get nice features that should be the default -- having to add use feature 'class'; to every lexical scope containing one or more class keywords along with use strict; and use warnings; gives up some of the gains of adding the keyword!

        If the only pragma I had to use were use 5.012;, that's an improvement.

      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.
        They do, power costs extra