in reply to Catalyst vs CGI::Application

Having used both extensively, I would say the following:

Basically, Catalyst is much harder to learn, but can give you more expressiveness. CgiApp doesn't have as much power, but does what it does simply. If you want something you can understand in an hour and that's perfectly fine, use CgiApp. If you are going to need a lot of raw power and are willing to invest a good deal of time and drink a whole bunch of kool-aid, then Catalyst is what you want.


My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

Replies are listed 'Best First'.
Re^2: Catalyst vs CGI::Application
by northwind (Hermit) on Oct 17, 2007 at 17:13 UTC

    (Yes, this is an addendum to the original question (which I did not pose).)

    As you have used both extensivly, could you come up with some simple speed benchmarks? Also, which one scales better under load (think very large number of hits)? And which one has a smaller memory footprint? Yes, I agree power and expressivness are important... but they are not the whole picture (<jest>if they were, everyone would be using Lisp *ducks* :-D </jest>).

    Update: Added <jest> tags (because I realized what I wrote could possibly be taken seriously (which I did not intend)).

      CgiApp will have a smaller footprint as it uses less modules and, frankly, does less. That said, the Catalyst devteam is very keen on scaling. Now, a major piece of this is how you deploy. Most CgiApp deployments that I've seen/heard about are done under mod_perl. Catalyst tends to deploy under FCGI. That can make a huge difference in your overall memory footprint (MP is often better) and scalability (FCGI is designed around scalability). As for HUGE number of hits, I'd say they can both handle it.

      And, if expressivity wasn't important, you'd be using C and not Perl. Plus, Lisp often beats out C in the Language Shootout. We don't use Lisp because it's not fashionable enough to have a big enough ecology around it. Perl is Lisp minus a few features, but plus CPAN. Perl 6 is meant to be Lisp + CPAN, no minuses.


      My criteria for good software:
      1. Does it work?
      2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
        The process model of FastCGI and mod_perl with a fornt-end proxy are nearly identical, so I expect the memory footprint and scalability will be the same, unless the particular application is somehow able to take advantage of some special capability unique to one of these platforms.