[cgiapp] Class::MOP? Really?
ron at savage.net.au
Sat Oct 20 17:33:39 EDT 2007
Ben Hitz wrote:
> I am not a fan of inside-out objects in perl, because I have much old
> code which uses old-style hash objects.
> It's confusing to have two types (although technically usable).
Your use of 'because' there is meaningless.
Before someone adopts inside-out objects, /all/ their code is 'old-style
etc'. And almost every line of code in CPAN is 'old-style'. So what :-)?
This preponderance of old-style code, in itself, tells you nothing about
whether or not inside-out objects are better, worse, or the same old
same old. It simply means a vast amount of code was written before
inside-out objects hit the big time.
In other words, we use what we have learned. For those of us who are
just about to try inside-out objects, without necessarily adopting them,
it's a choice between conservatively sticking with old-style code or
expending the effort to investigate something (inside-out objects in
this case) which, if adopted, will actually require retraining the old
brain a bit.
This situation is similar to a job I've just applied for, where Perl
Best Practices (PBP) is the mandatory way of writing code. I certainly
won't have to make as many changes to adopt PDP as a lot of other
programmers would (if I get the job), but I recognize there will be many
little places where I'll have to stop and think about what I'm writing.
And that's no bad thing, just an effort.
And there's no escape from the fact that Perl, and software technology
are not static entities. They evolve, become more complex (perhaps
unfortunately), and we can really only claim to be professional
programmers if we are prepared to make some sort of effort to keep
up-to-date (as distinct from mindlessly adopting the latest offerings
from the loudest fanatics).
> We have been converting our hand-rolled Database API to DBIx::Class,
> which uses Class::Accessor (actually an extension written for DBIC)
> called Class:Accessor::Grouped and Class:C3 to dispatch.
The fact that I prefer Rose to DBIC doesn't mean you should switch to
copy me. Just investigate, cogitate, and choose the one you most like
the look of. Before switching from Class::DBI to Rose, I read hundreds
of msgs on the DBIC mailing list, but couldn't bring myself to feel
enthusiastic about it.
Adopting Rose required retraining myself, but after a very short while
it just went Click! in a powerful way. So I asked myself - why is that?
It's a feeling so it's difficult to articulate - but the word I now use
is familiarity. Writing DBI code in Rose feels just like writing
anything else in Perl. It (Rose) is a natural fit to Perl. But I'll say
it again - just because it suits some of us doesn't mean it has to suit
all of us.
ron at savage.net.au
More information about the cgiapp