citromatik has asked for the wisdom of the Perl Monks concerning the following question:

Hi all

I am not a professional web developer, but in the last year I had to develop a couple of web applications. In them I combined code written in HTML, Perl, JavaScript (ajax,json) and CSS. All the CGIs were coded in Perl using the CGI module.

Now I face my third medium-sized project (a web interface for a database) and I would like to use a "higher order" solution other than having to code almost all myself

I have heard about different Perl modules/frameworks that can help in the development of web applications (Catalyst, HTML::Template, CGI::Builder, CGI::Application, CGI::AppBuilder, CGI::AppToolkit, Jifty, Maypole ...)... Hmmm, too much to test all myself before start coding.

Have you used any of these? other? why?. What system do you recommend? Does they have a large learning curve?

Thank you very much in advance,

citromatik

Edit: Added Jifty and Maypole to the list

  • Comment on Modules / Frameworks for Web development in Perl

Replies are listed 'Best First'.
Re: Modules / Frameworks for Web development in Perl
by moritz (Cardinal) on Jun 06, 2008 at 11:38 UTC
Re: Modules / Frameworks for Web development in Perl
by leocharre (Priest) on Jun 06, 2008 at 13:36 UTC

    I'm just going to step in here for a second and add my vote for CGI::Application. You're gonna heat a lot of people mention this one. And I just want to chip in - maybe if you hear it enough you'll actually try it out- don't conk out until you grasp it.

    Learning curve.

    Yes, there's a learning curve- of concepts. I am recalling here when I first started using it instead of 'rolling my own'. At the time I felt that CGI::Application had redundant steps- that it seemed harder than it should be to do little certain things. I remember thinking "this" is what you call a system to build cgi apps??? It seemed deceptively simple- and it seemed that some things should be taken care of *for* you. Thing is, they are- but the tutes, often make CGI::Application appear weaker than it really is.

    At this point I think CGI::Application is magic. It's a sort of tradition slash discipline with some code thrown in. It's helped me roll out apps immediately- it's helped me separate presentation from content from heavy code.

    I tried writing a small CGI::Application Namegame tute. The source is what you're interested in. There's also some cgiapps there- Do look through the examples people have- don't get discouraged- usage of cgiapp can be simple and point blank or a crazy m1ndfv.. err.. complex and powerful is what I mean.

Re: Modules / Frameworks for Web development in Perl
by sasdrtx (Friar) on Jun 06, 2008 at 13:33 UTC
    Gee, I can't believe no one ever asked this before. :-)

    I've been very pleased with HTML::Template (which is not a framework), and I'm going to try CGI::Application next. I would like to try Catalyst too, but it seems to be a bit much for my simple projects; and possibly difficult to install.


    sas
      I would like to try Catalyst too, but it seems to be a bit much for my simple projects; and possibly difficult to install.

      I have installed it in an standard linux box through the cpan shell and took me less than 3 minutes.

      I don't know how difficult is to build an application with it, but the installation is fairly easy

      Thanks for your comment

      citromatik

Re: Modules / Frameworks for Web development in Perl
by Rhandom (Curate) on Jun 06, 2008 at 16:18 UTC
    Warning - shameless plug by the author

    You forgot to include the poorly named and impossible to find CGI::Ex::App.

    It can be used in the same fashion as CGI::Application -- if that is all you want. But CGI::Ex::App has hooks that take you a lot further through a CGI life cycle.

    CGI::Ex::App can give you much of the features you'd find in something like the complex frameworks such as Jifty or Catalyst, but in a much lighter footprint and in a way that doesn't get in your face (unless you want it too).

    In the end the question "which framework to use" ends up nearly having only religious answers. Pick one. Try it. Chances are it'll do what you need. If it doesn't, try a new one. Once you have picked one, you can be as religious as the rest of us.

    my @a=qw(random brilliant braindead); print $a[rand(@a)];
Re: Modules / Frameworks for Web development in Perl
by zby (Vicar) on Jun 07, 2008 at 19:10 UTC