I, too, use Moose a lot these days. Someday, Perl-6 might be mainstream on the systems that I deploy software to, and when that day comes I am sure that I will do so along with everybody else. (I’m watching it, and I welcome it.) But meanwhile, Moose does indeed provide a different way of looking at Perl programming. Although it is a mind-shift, and although it does consume a fair amount of overhead, I find that it is significantly more efficient for me. And since development time is the biggest expense in any project (and un-caught errors the biggest money-robbing question mark), the cost savings profitability enhancements, to me, are compelling. I can buy computing resources to pay the modest-to-me horsepower price that is to be paid, and I am not working in “microsecond-aware” problem spaces.

Certainly one other major “plus” is that Moose is entirely compatible with the legacy code that inevitably surrounds it. I could never afford to replace the entire project; to re-code all those barely working old screens. I am not (yet) comfortable with the idea of replacing the entire language system in the boiler-room. But I can introduce a thoroughly (Test::Most) tested Moose object, and shift new development to it (the source-code sizes inevitably get much smaller), and gradually retrofit the older stuff as time and resources may allow. I really couldn’t do that with an entirely-new language system even if that system were “arguably better.” So, Moose is very strategically important to me, and yet, not at the exclusion of whatever Perl-6 et al may bring. No, “there is peace in the &lbrack;Perl...&rbrack; valley, for me.”

Now, where do I see those “goodness results” coming from? Well, it might be said that the results obtained exceed the size of the actual new and original source-code that a developer has to write. The cost of the project is largely a labor cost, and we have found that by developing Moose objects and “testing the hell out of them,” running regression tests on the whole thing several times a day, that up-front cost pays benefits and continues to pay. Because so much of the realizable benefits are concentrated into the object hierarchy that is the constant subject of the tests, the foundation produced is not only strong, but robust. “So, is it Moose, really, or is it just the Best Practices?” It is both, really. Moose both encourages those practices and simplifies them, all within the existing Perl-five framework. So it is, as I said, a tool of tremendous strategic importance. Not to mention ... It Is A Very Good Hack™ ... which as we all know is a programmer’s very highest compliment to a colleague.