What about the other Perl frameworks, Dancer and Mojolicious? How do they compare to Catalyst?
Dancer’s
big strength is making things quick and easy for smaller apps; you
don’t have to think in terms of OO unless you want to and plugins
generally shove a bunch of extra keywords into your namespace that are
connected to global or per-request variables. Where Catalyst doesn’t
have an exact opinion about a lot of the structure of your code but very
definitely insists that you pick one and implement it, Dancer basically
lets you do whatever you like and not really think too much about it.
That
really isn’t meant as a criticism: somewhere along the line I picked up
a commit bit to Dancer as well and they’ve achieved some really good
things –
providing something that’s as little conceptual overhead as possible
for smaller apps, and something where there’s a very direct mapping
between the concepts involved and what’s actually going to happen in
terms of request dispatch, whereas Catalyst abstracts things more
thoroughly, so there’s a trade-off there.
I mean, I was saying before
that empty methods with route annotations almost always end up getting
some code in them eventually.If
you get to 1.0 and most of those methods are still empty, you might’ve
been able to write a lot less code or at least do a lot less thinking
that turned out not to have been necessary if you’d used Dancer instead. Equally,
I’ve seen Dancer codebases that have got complicated enough to turn
into a gnarly, tangled mess and the developers are looking and thinking, “You know, maybe I was wrong about Catalyst being overkill…”
Comments