[Catalyst] Catalyst vs Rails vs Django Cook off

Robert 'phaylon' Sedlacek rs at 474.at
Tue Jan 16 14:44:17 GMT 2007


Perrin Harkins wrote:

> In the context of benchmarks, those things all seem pretty minimal to
> me.  The model interface is a razor-thin wrapper over calls to your ORM
> of choice.  There's not much reason to use it that I can see.  Same with
> the view: very little difference from calling templating tools directly.
>  (Somewhat more reason to use it though, since people often mess up the
> caching in TT when they write their own calls to it.)

It might be small pieces individually, but that can sum up. There seem
to be some talks about optimising the way uri_for works to make it
faster, so this doesn't seem to be that small of a value.

> Inherited actions and action classes are part of the dispatcher in a
> broad sense (i.e. part of how URLs get mapped to methods).

Well, in a _very_ broad sense IMHO ;) but no harm in differing here.

> The config system does provide convenient centralization but is mostly a
> call to YAML or similar and won't contribute to runtime performance.

Correct. This wasn't an argument that they do, rather one against
"Catalyst is only a fancy dispatcher," with which I still disagree.

> The point being, saying that benchmarking the mapping of URLs to methods
> isn't a good test of Catalyst is like saying that running SQL queries
> isn't a good test of DBI.  

That's a rather odd comparison. I'd say "benchmarking mapping of URLs to
methods isn't a good test of Catalyst like benchmarking DBI isn't a good
test of DBIx-Class."

> The bulk of the actual Catalyst code (not ORM
> or templating) that will run on any request to a Catalyst app is the
> dispatcher and the runtime environment abstraction.  It's a *terrible*
> test of the real-world performance of real web applications, which is
> mostly about the database access and templates, but a good test of the
> Catalyst code.

I'm not sure what definition you'd use for the word "test" here. With
some I can agree, with "benchmark against $X" I still have to disagree.
Sure, a benchmark once in a while can show you how things in Catalyst
got faster/slower. I'm just saying that you can't get a "X is faster
than Y" but only a "X is faster as Y in the way Z uses it" out of it.

-- 
# Robert 'phaylon' Sedlacek
# Perl 5/Catalyst Developer in Hamburg, Germany
{ EMail => ' rs at 474.at ', Web => ' http://474.at ' }



More information about the Catalyst mailing list