I really *hate* choosing all that stuff. I use CGI.pm, Class::DBI and Template because it seems these are the consensus favorites (I have zero statistical evidence).

One of *my* favorite things about Perl is the massive number of modules on CPAN. This is why I try and pick the most popular Web app components -- they are more likely to have cool plugins/extensions/subclasses of their own.

I have checked out Catalyst but, for my tastes, it has too many options, allowing me to choose which templating system, object-database mapper, etc, which feels to me an awful lot like "back to square one." This profliferation of options is probably why I can't get my head around the Catalyst documentation. Everything is much more complicated than it needs to be because TMTOWTDI.

I would be thrilled if someone made some smart decisions and put together an intelligently documented Web framework. I want an opinionated "super CGI.pm." What a great way to put it. ++dhoss.

Don't get me wrong -- I love that the options exist on glorious CPAN, and I respect why people prefer a custom-rolled solution or a looser framework. I just want the option of ... less options ;->

This sounds a lot like Rails in the Ruby world, but Rails boots its own webserver and has all kinds of code generation. It would be cool to start something that runs acceptably under CGI and then if you want it faster/more custom you just move it to an established, scalable persistence system like mod_perl or fastCGI (thus avoiding some of Rails' scalability pains).

If CGI::Application doesn't feel like the right tool, dhoss, you might check out CGI::Prototype by Randal Schwartz, which is a very cool control layer, albeit one with all sorts of Smalltalk-like hairs growing out of it. You might hate those hairs, or decide they are extremeley neat and Perl-ish in the best sense of the word. Adding methods on the fly would be an extremely useful way to extend a Web framework, and a Prototyped class gets you there.

Some sort of mix of that, Class::DBI, Class::DBI::Loader, Template (aka Template Toolkit) and a form module like CGI::FormBuilder could be a great "super CGI" with the right amount of glue code and a light touch.

And a text search module like Kinosearch could be a great foundation for a first plugin.

Of course the exact mix of modules is rather inconsequential to me. I'll gladly trade DBIx::Class for CDBI or Data::FormValidator for CGI::FormBuilder or HTML::Template for Template if the framework is smooth enough.


In reply to Re^2: super CGI? by ryantate
in thread super CGI? by stonecolddevin

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.