Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: Catalyst usage in the wild...

by weierophinney (Pilgrim)
on Jul 12, 2005 at 11:51 UTC ( #474248=note: print w/replies, xml ) Need Help??

in reply to Catalyst usage in the wild...

The first I heard of Catalyst was in the past few days on the CGI::Application mailing list. I haven't had much time to check it out yet, so I cannot really address many of your questions.

I do have some questions for you, however. Why to you lump CGI::App into those that you feel "are geared towards CRUD"? The reason I ask is that CRUD is not typically what I develop with CGI::App. The stuff I develop with CGI::App varies widely, but is typically of the landing page-search results-view individual variety, or data capture (vs full-blown CRUD).

(A cursory glance at Catalyst indicates that it shares one important thing in common with CGI::App: a page is a method (cgiapp uses the terminology run mode). With this paradigm, your class indicates what the available run modes are, what to use if none is passed or an invalid one is specified, and you go from there.)

Additionally, you indicate that "anything more complex [than CRUD] seems to start fighting the API". Could you explain what your experience is, and why you find this to be so? I've developed many complex applications with cgiapp, and your statement doesn't seem self-evident at all. I'm curious if it really applies to the other frameworks you list as well.

From the buzz I've heard and my cursory glance through its docs, Catalyst sounds quite well-designed. However, the other frameworks you mention have been around for quite some time and have active developer communities; I'm curious to know what sorts of applications you have in mind that they would not be able to address. I'm wondering if it's more a matter of Catalyst more closely matching your personal coding style than the inability of the other frameworks.

Replies are listed 'Best First'.
Re^2: Catalyst usage in the wild...
by waswas-fng (Curate) on Jul 12, 2005 at 14:40 UTC
    Sorry I did not mean to group CGI::App with the CRUD comment. My problems with CGI::App are that I tend to feel like I need to recreate the wheel every CGI::App app I create. It seems to be so lightweight that you have to build up a ton of the inner workings that make sense for the web framework to provide. After I am done -- I am left feeling as though I spent half my time writing code to make the framework, you know, work. I get the icky feeling every-time I build around CGI::App that I could have done the same thing quickly just building a quick dispatcher on my own. Catalyst seems to add much more groundwork, but at the same time I can overload and change its core behavior pretty quickly without much hassle.

      Your comments seem very much in line with Perrin's analysis in his slide presentation: CGI::App is suited for those who want high flexibility so they have control over their site. The syntax and methods are both flexible and extremely simple -- making it both easy to KISS, as well as to overdevelop ;-)

      My personal experience is that I develop a framework for each site I work on, and wrap utility methods/common functionality into a CGI::App superclass. The application framework -- cgiapp -- lets me choose what needs to be present, and what doesn't need to be. Every site is a little different, and I don't like to have more functionality in the application than is necessary.

      As an example, I might want a class that simply loads template content into a sitewide template. I have one run mode, and setup a default page if none is passed. Done.

      Another site might consist of several applications. The body content needs to go into the sitewide template, and I need breadcrumbs to the application. These items go into the superclass, and the individual application classes provide hinting so the superclass can do its job at the end.

      I appreciate larger frameworks -- they're great for prototyping more complex applications -- but in the end I've found that a lighter-weight framework like CGI::App suits my personal needs as a developer, because it allows me to build frameworks tailored for the sites I'm developing.

      It sounds like Catalyst more closely suits *your* needs, however, and that's what you need to think about. If you're worried about the longevity of the project, you can always step up as a developer... ;-)

        Thanks for the feedback, I see why you prefer CGI::App.. As for stepping up as a developer -- I wish I could, alas because of my current employment I am not sure that I could release copyright or hand out reproduction rights. I am looking into it.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://474248]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2020-12-04 23:05 GMT
Find Nodes?
    Voting Booth?
    How often do you use taint mode?

    Results (63 votes). Check out past polls.