[Catalyst] Bing!

Kyle Maxwell kyle at efactormedia.com
Sat Aug 13 00:16:08 CEST 2005


I just wanted to present the other side of the characterization of Ruby 
on Rails that Sebastian Riedel made.  Here's some counterpoints:

* Rails is built as 5 separate components, each available from RubyGems 
(CPAN analogue).  They can be and are used separately, although this is 
not that common.
* Model classes are *NOT* strictly bound to controllers.
* You can use multiple view types.  At this point, eRb and builder are 
the documented ones.
* Rails dispatcher "routes" is flexible, as it has just recently been 
rewritten.  As to the example Sebastian made of index.html requiring a 
rewrite layer, in Rails, just put the index.html file in the public 
directory and it automatically is on your site.
* Ruby on Rails is extendable.  I have added tagging and file upload 
support to ActiveRecord.  It was easy.
* Multiple inheritance is considered an anti-pattern by many.  Ruby 
supports module mix-ins, which give the benefits of multiple inheritance 
without some of the drawbacks.
* Ruby is slower than perl.  You're right about that.  Hopefully Rails 
helps spur the developement of Ruby 2, which will have a Java-like 
bytecode VM.
* Rails is both "all-in-wonder" and componentized.  I love the 
all-in-one-ness, because the integration is flawless, and you can go to 
one site for the documentation and updates.

I'm using rails full-time, and it is all it's cracked up to be, with 
these exceptions:
* While a production server is incredibly easy, deployment can sometimes 
be a bit tricky to set up.
* Sometimes the Ruby libraries are inadequate.  I ran into this with PDF 
generation.  Ruby is easy to extend with C libraries.  I prefer to setup 
PHP on the same server, and run stuff like PDF generation as a web 
service off a different port.

-Kyle Maxwell

 > Well, i'm not really unpartial, but i'll try be fair. :)
 >
 > * First, Catalyst is no port of Rails, it has fundamental
 > philosophical differences, Catalyst was built with CPAN in mind, so
 > you can easily have multiple views (TT/Mason...) and models
 > (DBIx::Class, Tangram...) in the same app.
 > Rails doesn't do that, controller classes are strictly bound to model
 > (table) classes, thats a bit like Maypole, but split into two classes.
 >
 > * Catalyst's dispatcher is very flexible, you can have all kinds of
 > uri's, even regex is supported while Rails sticks to the /class/
 > method/arg1/arg2/arg3 scheme, which requires a rewrite layer to get
 > fancy urls like /index.html (yes thats against their own DRY slogan).
 >
 > * Catalyst just needs a small glue to add more components, it's made
 > to be extended, especially through multiple inheritance, which Ruby
 > doesn't even support.
 >
 > * Rails is also slower, thats because Ruby is generally much slower
 > than Perl and Catalyst has a much more optimized dispatcher.
 >
 > * Rails documentation is much better (no surprise since they can work
 > fulltime on it)
 >
 > * Rails is a all-in-wonder package including a orm and template
 > system while Catalyst follows the CPAN philosophy to split everything
 > into small packages.
 >
 >
 > So to make it short, Rails is better documented and very trendy
 > (hyped) while Catalyst happens to be faster and much more flexible.
 >
 >
 > --
 > sebastian
 >
 >
 > _______________________________________________
 > Catalyst mailing list
 > Catalyst at lists.rawmode.org
 > http://lists.rawmode.org/mailman/listinfo/catalyst
 > 




More information about the Catalyst mailing list