How Catalyst compares with Ruby on Rails, two MVC frameworks

Catalyst Rails
Maturity Younger but is considered stable and production ready Rails Version 1.1.2 release April 9th, 2006
Philosophy "wrap the framework around the data, not the data around the framework" DRY (Don't repeat yourself!), Convention over Configuration. Encourages use of Agile practices.
Language Catalyst uses Perl which is a very popular scripting language. Catalyst leverages Perl's OO architecture with multiple-inheritance as well as mix-ins. Rails uses Ruby, a less known but robust and powerful OO language. Ruby is considered stable, however it has some short-comings including speed and lack of Unicode support.
Dev. Support Perl support is vast. Catalyst core documentation and support is good, but not as good as Rails. Rails has good documentation and a growing community.
Database Perl/Catalyst has DBI, DBIx::Class, and Tangram which supports a large number of database backends (100+). Catalyst allows each model to be from different databases (even database sources). Some useful virtual databases exist (Amazon, Google, Excel documents, CSV files, etc.). DBIx::Class is the most popular ORM and supports features such as multi-column primary keys and character-based primary keys. Rails supports the primary 6 database backends, although MySQL seems to be the best supported. Test and development "environments" can easily and automatically use different databases, however. Developers are not forced to use Rails' database layer, and some choose to use other Ruby based solutions. ActiveRecord? is the most popular ORM for Rails. It has some design limitations in that it does not support multi-column primary keys or character-based primary keys.
Library Pool Catalyst is CPAN-centric. CPAN is an extensive collection of libraries, although it has been criticized as being sometimes confusing to browse and draw from. Ruby libraries can be installed via RubyGems, or via typical source packages. RubyGems and RAA provide a good selection of libraries, although not as extensive as CPAN.
Speed Catalyst is usually as fast as anything else in Perl would be, assuming you have a persistent interpreter Ruby 1.x is known to have performance issues, but Ruby 2 should be faster.
Markup Rendering (Views) Most commonly: Template Toolkit and Mason, which have been around for years. There is also HTML::Template, Petal, MicroMason, REST (XML) & PHP as view options. There are two included views, eRb (similar to template-toolkit) and Builder (builds chunks of XML/HTML from scripting). Rails' templating system is extensible and additional Ruby template engines have been modified to integrate with it.
Installation Everything is installed from CPAN (except for Perl). Great support for many platforms. Everything is installed from RubyGems (except for Ruby and RubyGems).
Post-Deployment There are a lot of Perl programmers, and a lot of support from a large community. Perl has earned some criticism for having too many ways to do the same thing making maintenance sometimes difficult. Ruby programmers are harder to find, but there is good support from a growing community.

Guidelines for Editors

  • This document is not for advocacy!
  • Keep things balanced and factual.
  • Keep explanations simple and readable.
  • Don't use markup or verbiage to emphasize facts.
  • Quantity does not equal quality. Keep things to the point and relatively balanced in length.
  • Major topics (stuff in the left column) should be limited to a dozen or so of the most important criteria.
  • Keep things under the product columns as short-and-sweet and possible.
  • If the same thing could be said for the other product, then don't say it. It's noise...really.
  • When making changes, make them incrementally and log who you are, what changes you made and why.
  • Lastly, these rules are editable by you. (But they will be monitored by your peers! Bwa-ha-ha!)