I've always had some love for Perl 5's object system. I appreciate that it doesn't foist an ideology on me, instead providing me tools to build and use an object system that I'm comfortable with.
Typically for me that object system uses blessed hashes, hand-written accessors (with hand-written validation), hand written method parameter validation and explicit manipulation of @ISA.
Why don't I use X for (accessor generation, parameter validation, etc.)?
I probably have, and maybe do on a project here or there. But I've never fallen in love with a combination of OO helpers on the CPAN, and Perl's built in OO mechanisms are usually good enough for me.
A couple of things happened the other day. I looked at Moose's documentation, and stubbed a couple of classes for a home project. I was expecting a steeper learning curve than I found, and in a couple of minutes I was working with object system that I liked.
I didn't see anything about method parameter validation in the Moose documentation, so I hopped on irc.perl.org#perl. People were nice and helpful (thanks autarch, mst and sartak!) and in another minute I had MooseX::Params::Validate plugged in and working away. I also got some exposure to MooseX::Method::Signatures, Method::Signatures and Devel::Declare. Insanely cool stuff.
Thank you and congratulations, Moose team!
-- Douglas Hunter
Excellent, I am glad Moose is working for you. Thanks for the nice words too, even though (on some level) I really build modules for myself to my make own life easier, it is always nice to know that others are finding it useful too.
- Stevan
Re:Very Nice :)
Ron Savage on 2009-01-25T05:25:08
Hi Folks
Yep, count me in as a supporter, too.
It's both marvellous and effortless, and even makes me feel good about 'Doing The Right Thing' OO-wise!