SPUG: State of the Perl Frameworks

Jacinta Richardson jarich at perltraining.com.au
Sat Nov 15 00:59:24 PST 2008

I can't tell you the full answer yet, because I'm still doing my research on
this exact question for a talk at OSDC (Australia) in early December.

Ron Pero wrote:

> What is the quickest, easiest way to create a database application at a
> website?

It depends a little on what you need, and how much effort you want to apply.

> It's been a while since I've checked in with Catalyst, or with other
> Perl "frameworks". Is Catalyst the top dog in the Perl world for this
> kind of thing?

Catalyst by far has the biggest community.  If you run into a problem or have a
question of style, you can expect an answer from the Catalyst folk within 8
hours or so; often quicker.

Having said that, Catalyst doesn't seem to have current support for instant CRUD
(create, review, update, delete).  There have been lots of projects about this
over the years, but none that have really had massive buy-in.  This means that
you have to manage each of these functions yourself; for each of your tables;
even when it's something that you might feel Perl could do for you.  The
argument against instant CRUD is that for all but the most trivial data, you'll
want to apply verification routines, join some fields, mash others, put some in
one table and some in anther and generally apply a lot more business logic than
Perl could possibly guess for you.  Things that make instant CRUD easy often
make this kind of customisation much harder.

> Since the app I'm creating is small, I might use something similar to
> CGI::Application. No mod-perl involved.

A very safe and common choice.  I understand CGI::App to also have a very active

> Maypole? http://maypole.perl.org/

I'm behind on my research for Maypole, but I can say that there are at least a
couple of vocal community members willing to help with questions and fix bugs.
Maypole advertises instant CRUD and looks pretty awesome.

> Gantry? http://www.usegantry.org/

Gantry appears to have no community involvement at all, and noone has responded
to any of my list posts for the two or more months I've been subscribed.  I
haven't finished all my research here, but the instant CRUD and everything looks
absolutely awesome.  Be aware that you have to install bigtop separately and the
docs don't seem to tell you this.  I hear (but have not confirmed) that if you
run into too many problems, the assumption is that you'll buy the Gantry book
for more answers.

You've missed Jifty.

It has slightly more community involvement, but it's extremely quiet.  It's
often criticised as providing the "one true way" for MVC solutions because it
comes with Jifty versions of modules to provide templating, database
interaction, authentication etc etc.  To be fair so does Maypole and Gantry.
Catalyst on the other hand merely makes recommendations.

Jifty provides instant CRUD, and has some limitations on how far you can
customise things.  Jifty never really go the PR machine going, I suspect it was
supposed to start soon after Christmas 2005.  As a result, it hasn't really
captured people's minds and it's languished.

> Perl on Rails?
> http://www.bbc.co.uk/blogs/radiolabs/2007/11/perl_on_rails.shtml

No idea.

I hesitate to say that Catalyst is the "best" solution.  When I tried to get
into it for a new project late last year, I found the documentation difficult to
understand; and later found that the modules recommended for use in the tutorial
were deprecated.  I found it continually frustrating that Catalyst didn't at
least provide me with the basics of CRUD that I could then work on.  Certainly
having to create templates and routines for each and every part of the data
annoyed me.  Still it is certainly the less lonely route, and that has a lot to
say for it.


   ("`-''-/").___..--''"`-._          |  Jacinta Richardson         |
    `6_ 6  )   `-.  (     ).`-.__.`)  |  Perl Training Australia    |
    (_Y_.)'  ._   )  `._ `. ``-..-'   |      +61 3 9354 6001        |
  _..`--'_..-_/  /--'_.' ,'           | contact at perltraining.com.au |
 (il),-''  (li),'  ((!.-'             |   www.perltraining.com.au   |

More information about the spug-list mailing list