Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Re: Why CGI::Application?

by rkg (Hermit)
on Jan 13, 2004 at 21:46 UTC ( #321118=note: print w/replies, xml ) Need Help??

in reply to Re: Why CGI::Application?
in thread Why CGI::Application?

++ Perrin. I concur. C:A doesn't really do all that much, but the structure it offers is much much much much better then coding a spaghetti mess of ifs to run a webapp. So C:A provides a structure which does a great deal, even if the code itself is simple and small.

Once upon a time I wrote my own wrapper for building CGI apps, then later discovered I was heading down the very same path as C:A (only not as well.)

I'll use the space here to recommend Mason. It works very nicely with mod_perl and it is both powerful and easy. (And AMZN uses it on their core site, so that's a powerful endorsement.)

An example: deep inside a web page, within Mason, I can detect the user wanted the report in Excel, vs. HTML. Cool. Clear the buffer, send the right content type header, pump out the Excel data, and then turn off Mason processing -- didn't have to worry if I had sent headers or page content already, runmodes, etc.

And the Mason notion of components makes me feel like I am playing with Legos -- snap snap a new web page. Nope, move that function off this page to that page, sure. Snap, snap. Easy.

Could just be the "honeymoon" infatuation with a new (for me) technology, but I'm currently a strong advocate of H:M.


Replies are listed 'Best First'.
Re: Re: Re: Why CGI::Application?
by dragonchild (Archbishop) on Jan 14, 2004 at 11:44 UTC
    I'm curious, never having used Mason, how it's easier to use than HTML::Template + Excel::Template + PDF::Template ... They all use the same data structure and, assuming you have one function that all printing goes through, you do the dispatch there. Or, am I missing something?

    We are the carpenters and bricklayers of the Information Age.

    Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

Re: Re: Re: Why CGI::Application?
by DrHyde (Prior) on Jan 15, 2004 at 09:47 UTC
    I concur. C:A doesn't really do all that much, but the structure it offers is much much much much better then coding a spaghetti mess of ifs to run a webapp.

    C::A may provide a way of avoiding spaghetti. So does thinking before touching the keyboard. A big if or switch or anything else does not automatically mean spaghetti. Spaghetti is a symptom of bad programming practices, and I don't care what modules you use, a bad programmer will always write nasty code.

Re: Re: Re: Why CGI::Application?
by Anonymous Monk on Jan 14, 2004 at 12:13 UTC
    Now that's just super complicating it. Mason has it's place, but this is not it.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://321118]
[ambrus]: erix: that one actually sucks. these days people should get rid of the old notion that TeX is the only thing you can use for decent mathematics writing, because MS Office and LibreOffice have reached the
[ambrus]: level where people can more easily write as good mathematical papers in them as the people who write bad LaTeX papers usually write.
[ambrus]: Yes, for like the first twenty of its years, TeX was basically the only system that allowed you to write decent maths papers, and C++ and PHP were programming languages that sucked, etc. But times change and people have to accept that.
Discipulus bad people + good tool < normal people + decent tool
[Discipulus]: php does not suck anymore?
[ambrus]: Discipulus: I'm not sure, but it certainly doesn't suck as much as it's used to. it's like C++, it sucks because people still recursively learn from twenty year old PHP examples,
[ambrus]: and they try to use the obsolete features that PHP has to support only for compatibility with old scripts. C++ and PHP both have the problem that people can't forget the past, because when they google "PHP" plus the problme they want to solve, they find b
[ambrus]: ad code examples.

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (11)
As of 2017-09-26 11:06 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (293 votes). Check out past polls.