http://qs1969.pair.com?node_id=509657


in reply to OT: Ruby On Rails - your thoughts?

Back in February I used Ruby and RoR for the first time, on a month-long project. My impression: Ruby is a great language. It feels cleaner and more consistent than Perl yet remains powerful. Further, its cleanliness and consistency encourage programmers to gain a deeper understanding of the language's underlying semantics, and that has enabled the Ruby community to develop elegant and sophisticated meta-programming techniques and incorporate them into the culture. And that is what excites me about Ruby.

Rails is a great example of this. It uses meta-programming extensively to embed domain-specific mini-languages into Ruby. These mini-languages make object-relational mapping, controller-view integration, and other aspects of web programming seem natural, effortless even. In many ways, Rails offers what Damian Conway argues for in his talk about Sufficiently Advanced Technologies.

Catalyst, in comparison, seems clunky. While it may offer advanced technologies for web programming, they fall short the more "sufficiently advanced" versions that Rails offers. In many ways, this isn't a failing of Catalyst but merely a reflection of Perl and Perl culture. Many of the Rubyisms that make Rails elegant don't resonate within Perl. Using them in Catalyst would make it seem less Perlish and perhaps even awkward.

Don't get me wrong: while I like Rails, it's by no means perfect. All in all, I would characterize it as darn good but not amazing. (Well, maybe if you're coming from Java/.NET, it might seem amazing.) Its caching model has problems. The Rails culture is somewhat enamored of sexiness and often overlooks things like web accessibility and safety (see, e.g., Google Web Accelerator vs. unsafe linking: Round Two!). Also, the incessant hype is annoying.

Nevertheless, Rails is changing the way web applications are written. If you ignore Rails, you're guaranteed to miss something important.

If you want to know a bit more about Ruby/RoR, I gave a talk about my experiences for the Pittsburgh Perl Mongers. You can get the slides here: Ruby and Ruby on Rails: A Perlish First Impression.

Cheers,
Tom