Legend has it that Jean Chastel fired two shots and killed the beast of Gévaudan.
The beast attacked livestock and people in south-central France in the middle of the 18th century. Some say the beast killed over a hundred people. The attacks ended after the deaths of two large wolves—one in 1765 and the other by Chastel in 1767.
By the 20th century the legend had grown to include the story that Chastel had melted down a medallion of the Virgin Mary to make two bullets of silver.
In 1986, Fred Brooks used this metaphor to propose that no single technology nor management technique could produce an order of magnitude improvement in productivity, reliability, or simplicity within the decade. (Most people get this quote very wrong. Most people haven't read the paper in detail or at all.)
Perl 1 entered the public world in 1987.
Today (while solving hard problems), I realized that Moose and its ecosystem—including projects it's inspired, such as other declarative mechanisms for describing classes and objects—may just represent an order of magnitude improvement in productivity, reliability, and simplicity.
I write a lot less code. I write less repetitive code. My code is easier to read and to maintain. My code is much more correct. My code is much more flexible and easier to test. (Compilation error messages are much worse. That doesn't bother me terribly, but keep it in mind.)
Keep your blessed hash references all you want and lament that kids these
days don't have to walk uphill in the snow both ways to stuff things in package
global variables like @INC
and that we're lazy, fat slobs for
using CPAN modules for what you have done by hand since 1994, just as Moses did
and King James always intended...
... but I'm loaded for werewolf.
I don't know if you are aware of Method::Signatures::Modifiers which brings Method::Signatures to MooseX::Declare. It much better in this realm most of the time. Nice article, as usual!