Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: Catalyst vs CGI::Application

by dragonchild (Archbishop)
on Oct 17, 2007 at 16:56 UTC ( #645501=note: print w/replies, xml ) Need Help??

in reply to Catalyst vs CGI::Application

Having used both extensively, I would say the following:
  • Catalyst is much more powerful and expressive. It allows greater reuse of code and provides much better abstractions than anything I've seen, other than Rails. That said, the learning curve is very steep. I was able to learn how to use Catalyst under mst, the lead developer. I would strongly urge you to find someone on the devteam and crib from them.
  • If you don't need Catalyst's power, CgiApp is a perfectly capable framework. It's extremely easy to learn and has a lot of power to it. It's so simple that you can just read the source - it's just one file. The test suite covers most everything and can be read and understood in an afternoon.

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.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://645501]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (10)
As of 2018-06-25 20:41 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (128 votes). Check out past polls.