Jay K ha scritto:
I agree 100% on this... if we are judging Catalyst, et al, as simple
dispatchers, then we should consider apache+cgi in the discussion as
well - as apache is obviously one of the most venerable and widely
deployed dispatchers out there.
...and is probably faster than Catalyst at doing that.
A framework is much more than that. In my experience, the costs in time
and money involved in building and maintaining the code for an app
outweigh the cost of deploying it by huge margins. Furthermore, by the
time you are experiencing enough traffic to be analyzing the performance
at this granular a level, there are much better ways to improve your
responses per second that cost much less in terms of time and money.
These days, for less than the cost of a week of work, you can double
your serving capacity easily - and because of the 'fringe benefits' of
using Catalyst this is usually simply a matter of swapping out session
and caching plugins (if you even use them) to the more cross-server
compatible modules.
This brings another point into the mix: how easy is to swap those
modules? How much code do you have to change in you app to make it work?
If a framework has a good plugin system, you can just tell it to use a
different cache module (e.g. swap out Cache::FastMMap in favor of
memcached) and restart the application.
If you are using a frontend cache like squid, you can do even more
cost-for-performance-wise.
Personally, I use Catalyst because it takes care of a lot of details I
would rather not worry about. When I am free of worrying about all
those details, I can focus on building JUST my application logic. This
means that my application logic tends to be more solid, because I am not
tracking a ton of specifics outside of my app.
>
This could be a good starting point for a comparison between web frameworks.
Catalyst is very good in this area (IMHO) because for example I can
develop on WinXP using the test server and then deploy under
Linux/mod_perl *without changing a single line of code in my app* (there
could be issues if I use perl modules that are less portable than
Catalyst, but that's not Cat's fault).
That's a pretty impressive cross-platform-ness IMHO ! :-)
Because I'm not constantly crossing the line between my app and base
functionality (responding to HTTP, getting the correct bit of code
executed based on the request, etc.), I am not chasing bugs related to
that line. I can rely on the fact that it will always happen in a
particular way and if I have a bug, it's more than likely in my
application, so I can focus there.
That is the power of a Framework any 'benchmark' that doesn't take those
things into account is so much fluff and of no use to me.
Agreed.
JayK
--
Marcello Romani
Responsabile IT
Ottotecnica s.r.l.
http://www.ottotecnica.com
_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/