Hi Jacinta,

On 04/11/2008, at 2:25 PM, Jacinta Richardson wrote:

If anyone has anything they'd like to share about Catalyst vs Jifty, Gantry, CGI::App, Maypole, Mojolicious etc, I'm certainly open to insights. I don't have enough time to learn all of these frameworks properly so I'm very dependent
- at this stage - on information from the users and creators.

I don't have huge insights but I'll add those that I do. Several years ago we informally reviewed CGI::Application, Maypole and (a bit later) Catalyst. We gave Jifty a quick look but its philosophy of one-true- way scared us off a bit. We put it on our 'wait and see' list but haven't felt the need to look at it in detail again yet.

When we gave Maypole a go and found that the scaffolding stuff provided a great 10 minute 'wow that was easy' experience but in the longer term got in the way. We tinkered with the resulting code to make it work the way we wanted but worried that we would get stuck with ageing versions of Maypole installed because our modifications wouldn't work with the next release. Our assessment was that there was a 'Maypole Way' and if you didn't like it you were in for extra work at implementation and extra problems during the application life-cycle.

As a result we didn't pursue Maypole for any real projects. In addition, Catalyst appeared on our radar and our initial impression of Catalyst was that it was very much inspired by Maypole but was intended to address the kinds of concerns we had about it. People seemed to be deserting Maypole for Catalyst at that time. We decided to keep an eye on things.

CGI::Application seemed nice and light weight. We used it in a number of projects at the same time as we evaluated Maypole. After a while we noticed that on every job we added our own config handling code, and session handling code, and dispatch handling code. In addition we didn't really like HTML::Template which was the de facto CGI::App templating standard at the time. I assume ours was a common experience since a long list of plugins and modules appeared adding these standard capabilities. We replaced our custom code with a standardised subset of them (including one that facilitated using Template Toolkit) from various authors.

At this point I took another look at Catalyst and it was immediately clear that all the add-on modules we used for CGI::Application projects were effectively included in the core of Catalyst so we decided to evaluate it further. Our first experiences of trying to use it were quite frustrating - there were zillions of dependencies to be met and this could take a fair bit of perseverance since they would often fail to install for reasons which were difficult to determine. I believe this situation has improved significantly. The documentation was also lacking but this situation is better now also. There are many more examples available and the book (http://www.packtpub.com/catalyst-perl-web-application/book ), while not perfect, is a valuable learning tool.

A naive comparison of Catalyst and CGI::Application dependencies made Catalyst look positively bloated and CGI::Application attractively svelte however this comparison was unfair - once you looked at all the CGI App plug-ins and add-ons we had accumulated the difference was nowhere near as stark. It was also seen as advantageous that what we considered to be a basic web application stack was distributed and tested as a unified release rather than haphazardly across a loose federation of 'third-party' modules as with our use of CGI::Application.

Today Catalyst is our default web application framework since we have found that it provides the bits of standard infrastructure we had previously (re-)written each time or cobbled together from disparate sources and it does this without unduly restricting our capacity to find more than one way to do things. We have successfully glued existing Class::DBI and Alzabo ORMs into our Catalyst apps and have been more than happy using DBIx::Class (the de facto Catalyst standard) for new projects.

I hope that my very unscientific brain dump is of use.

Cheers
--
Adam Clarke

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to