|Think about Loose Coupling
Re^2: Perceptions of Perl - views from the edgeby gamache (Friar)
|on Feb 15, 2008 at 21:15 UTC
Two weeks ago today, I set out to write an auction website. The project was under a strict deadline; I had eight days.
I have written websites in Perl for years. Pure Perl, CGI.pm, CGI::Minimal, CGI::Application, Jifty, and Catalyst have each had their turn.
I decided to do this project in Ruby on Rails. I did not know Ruby. I did not know Rails.
Eight days later, there was a working auction site in place, with a few hundred items and a few dozen nerds bidding on them.
I will put this as clearly as I can: RoR beat the daylights out of every Perl web framework I have had experience with. Even after a decade of Perl experience and more Perl websites under my belt than I can count on both hands, I couldn't have done with Perl what I did in RoR in eight days. I don't know if I could have done it in twice as long. (I do know that it would have sucked.)
Ruby itself can't do anything Perl can't. I loved its syntactic consistency, though. I spent about 15 seconds learning the language conventions and then it just got the hell out of my way.
But Rails, oh boy. ActiveRecord is nothing less than a godsend. Finally, and notably in agreement with a Perl design philosophy, there is something that makes simple websites simple to build. I was continually impressed by both the extent to which the framework designers anticipated the needs of the website programmer, and the extent to which the framework "scales up" to more difficult tasks and optimizations without making things more complicated than they have to be.
Talk whatever shit you want on Ruby and Rails, I guess. The "convention over configuration" paradigm puts a lot of bees in a lot of bonnets in the Perl community. But I'll tell you, it wasn't hype that collected a little over $10k in a multi-unit ascending auction system last Saturday, and it's not just marketing that is building Perl's increasing reputation as a deprecated language for web development.