I've started a new project, and given that it's for my own enjoyment, I have the time to try out a few new things. At the suggestion of rjbs, I'm giving Catalyst, TT, and DBIx::Class a shot.
So far, I've been the happiest with TT. As a long-time HTML::Template user, I am totally drunk with the power that TT provides me with (yes, Uncle Ben, with great power comes great responsibility...). I've been a long-time purist in not wanting to intermingle code with presentation, but as I am finding with TT, there are some things (like how data is formatted) that should be left to the designer to decide. HTML::Template left designers with little ability to do some of those things (though Rhesa and Mark's work on HTML::Template::Plugin::Dot went a long way to bridge that gap).
DBIx::Class... I can't imagine how I lived without it either. While I haven't had some of the issues with Class::DBI that others have had, my company does have some ugly schema in spots that is just not practical to refactor in our current time crunch. Unfortunately, CDBI doesn't deal well with some of the problems in our schema, and because of it, we miss out on some of CDBI's features. DBIx::Class handles these without issue, and the syntactic sugar makes it a pleasure to work with.
Catalyst I am not sold on. Not that I think it's bad, but there's a lot I don't understand about it. CGI::Application has always been simple and straightforward... Catalyst does a lot more for me out of the box, but spotty documentation in spots has sure made it hard for me to figure out how to use some of it. That being said, I love how multiple views and models are handled in Catalyst. It's very sweet.
(and no, I'm not trying to bitch about Catalyst's docs. I might even submit some patches for the docs, time willing).
All in all, it's been a positive experience. I enjoy expanding my horizons, and learning new tools gives me new ideas and appreciation for the tools I have become accustomed to.
Re:Catalyst is being Mooseified
Purdy on 2008-07-31T15:07:00
And as I said in the title Catalyst is getting Mooseified, which from I what I see from Moose could really simplify Catalyst and make it more appealing
Wow, I didn't know that
... that actually makes it less appealing to me. From what I heard & saw at YAPC::NA '08, Moose has a lot of baggage (installing Moose brings half of CPAN with it, plus the performance demands apps use mod_perl) that in my opinion, costs more than its worth. Re:Catalyst is being Mooseified
nothingmuch on 2008-08-09T00:03:36
Catalyst is actually already much more "unappealing" by your metrics.
Though as someone who is heavily involved in the development of both I think that's a good thing.
As for startup times, mod_perl/fastcgi/any persistent env is reccomended for Catalyst anyway, starting any app larger than a twitter clone will usually take at least a few seconds.
Before you criticise things publicly please check the facts. Heavy deps or long startup times are a legitimate concern, but the Moose change hardly changes any of that with respect to Catalyst.
I've always looked at Perl/TT like this:
Template Toolkit: Printing by default and access control flow via '[% %]'
Perl: Control flow by default and print out via 'print'
I agree, there's no sense in being a code/presentation Nazi. When the problem is emitting large chunks of output with very little control flow, then TT makes the best sense.
Bonus for factoring out presentation to a