in reply to Re: Trying to make perl suck less again
in thread Trying to make perl suck less again

Moose doesn't have to be backwards compatible, and quite frankly it is stupid perl is to such an ape shit insane extent - especially being Perl 6's state. If you use Moose, the package that includes Moose should use 5.10 features. It is the very job of Moose's to eliminate cruft, after all -- it's just regular perl code, that makes perl more bearable. Having to tell Perl your code isn't retardedly esoteric, and thus can use new features, is surely an easy target for Moose. And v5.10 broke stuff anyway right? Without going into the minor things I'm sure it broke, it removed the deprecated pseudohashes...

IIRC the strongest reason to keep Moose out of the CORE amongst other stupid modules that compete to make perl-suck-less, was that Moose wanted to develop at a higher speed than that of CORE, and that people acknowledge it might break backwards compatibility.

Every few major releases of Moose have broken something, somewhere for me. However, I waste substantially less time finding and fixing them than I did hitting my head over retarded design decisions that predate Moose. And more often than not, the new functionality Moose includes with every major release quickly laps the amount of time I waste when Moose is broken from upgrade.

Ignore those that would stifle development because they refuse to risk breaking compatibility. programmer_conservatives--


Evan Carroll
www.EvanCarroll.com
  • Comment on Re^2: Trying to make perl suck less again

Replies are listed 'Best First'.
Re^3: Trying to make perl suck less again
by ysth (Canon) on Dec 23, 2007 at 07:36 UTC
    Thanks for explaining. I didn't know Moose regularly breaks compatibility. That's a little scary, if (as I believed to be the case) it is used by a number of CPAN authors, all of whom will be upgrading on their own schedules. Oh well.

    Update: the above was intended to be sarcastic. I assume that even if Evan's assertion that Moose has broken BC is true, it was accidental, not intentional.

      Moose regularly breaks compatibility? Perhaps someone should tell its authors, who claim in Moose::Cookbook::FAQ that

      The external API [...] is very stable and any changes will be 100% backwards compatible.
      (emphasis theirs). Sounds to me like a module that thinks backwards-compatibility is important...

      Frankly I cannot agree with EvanCarroll's recent post above. Maybe he lives in a bleeding-edge paradise where he can recklessly break his code all the time and laugh it off, but some of us work in real-world environments where breaking things is not an option. The only reason I can use Perl at all is that I can write code that will run on versions back to 5.6.1 (and it's only recently that we got rid of the last server that couldn't be upgraded beyond 5.005). This means avoiding cruft (no pseudo-hashes etc) -- but it also means avoiding new features.

      Basically, any CPAN module that forced 5.10 semantics when running under 5.10 -- as EvanCarroll appears to be proposing for Moose -- will simply not be an option for me or any of the many other Perl hackers in my position. Maybe prizing backwards-compatibility so highly seems "ape shit insane" to some people, but to me the "ape shit insane" thing would be a module that changed the semantics of my code depending on the version of Perl I ran it with.

        For the record, IIRC we "broke" backwards compat twice. Both times it was to fix incorrect behavior which caused more issues broken then it would fixed.

        Stability is very important to the Moose community because many of us have applications running in prod which our jobs/livelihoods depend on. Any change made is made with lots of consideration and only if we feel the pros outweigh the cons.

        If we ever were to add auto-magic usage of 5.10 features in Moose, it would be 100% completely optional. Moose proudly runs on 5.6 and up.

        -stvn
      A reply falls below the community's threshold of quality. You may see it by logging in.
    A reply falls below the community's threshold of quality. You may see it by logging in.