Recommendation for simple Web Frameworks

Simon Wistow simon at thegestalt.org
Mon Jan 10 21:34:48 GMT 2011


On Mon, Jan 10, 2011 at 08:25:37AM -0200, Eden Cardim said:
> >>>>> "Simon" == Simon Wistow <simon at thegestalt.org> writes:
> You got the wrong impression, Catalyst isn't tied to anything, it's just
> a plugglable/configurable http dispatcher, it's as simple as any of the
> other perl web frameworks in that regard. It does have a larger user
> base for testing/contribution/support, I'd say that's the main
> advantage.

You can see how I'd be confused given that the docs say

"Catalyst follows the Model-View-Controller (MVC) design pattern, 
allowing you to easily separate concerns, like content, presentation, 
and flow control, into separate modules."

Now true that doesn't necessarily preclude me from not creating models 
but it does seem to imply that they are somewhat expected. 

My experience with most of the major web frameworks across 3 
different languages has indicated that much of their utility is based on 
the automagic they provide. Magic requires a fair bit of 
convention-over-configuration or, at least, expects you to be doing 
things "The Right Way[tm]" and attempts to circumvent tend to lead to 
problems.

And I'm fine with that - it's a good thing and for 90% of people it's 
probably the right thing.

However I didn't want to be in the position where, somewhere down the 
line, I started having to wrap hashes in fake pseudo-Catalyst::Model 
classes in order to get stuff working with some component or plugin 
because the author of that (quite rightly) assumed that no fool would 
ever not be using models. [*]

I may have the wrong impression but my experience with a large Catalyst 
app (TypePad) and reading the docs lead me to that impression.

Other reasons for not going with Catalyst which may or may not be FUD:

* Felt "too heavy". I needed a very simple app and Catalyst seems 
  designed for non-simple apps. 

* Bad experience with Catalyst based app start up times during 
  development cycles (this is also true for Django and Rails FWIW) 

* Too many dependencies

* Moose. I just don't like it - but that's just me.

Don't get me wrong, I think Catalyst is great but it didn't feel quite 
right for this occasion.

In the end I went with Dancer and I'm loving it so far - some more docs 
on the idiomatic way to deal with user creation, authentication and 
roles might be nice but I think I figured it all out pretty quickly. 

Thanks for the feedback though,

Simon



More information about the london.pm mailing list