All the cool kids are talking about Ruby on Rails. It’s apparently the next big thing in web development. As Danny O’Brien said at OSCON, Ruby on Rails seems to have gone through the whole “first they ignore you, then they laugh at you, then they fight you, then you win” process in about three weeks. It would be interesting to investigate why Rails has become so popular when similar Perl-based frameworks like Maypole and Catalyst still languish in relative obscurity. I suspect it says something fundamental about the Perl community’s ability to promote its projects.
I’ve looked at Ruby before. It seems to be a nice language. In many ways it’s close to what Perl 6 will be – with, of course, the obvious advantage that Ruby is here now. So I decided I needed to take a closer look and did what any self-respecting geek would do – I’ve ordered some books. Copies of Programming Ruby and Agile Web Development with Rails will be on their way to me just as soon as Amazon gets them back in stock.
I’ll let you know what I think.
I think it has to do with two things:
In addition to what you and Aristotle said, the other thing is the sheer number of Perl frameworks out there. OpenInteract, Bricolage, Maypole, Catalyst, Krang, Bivio, AxKit, Mason, OpenFrame, TT2, etc. Everybody and their dog has their own favourite.
On the Ruby side the vast majority have moved behind Rails and that makes a big difference.
Ruby is hellishly nice language though. I love Perl, but recently whenever I see some Perl code I end up feeling that it would be so much simpler in Ruby.
Adrian,It’s important to compare like with like. And I think that your list includes a number of things that can’t be compared to Rails.Mason and TT2 are both components that you’d use to build a framework. And OpenInteract, Bricolage and Krang are all applications that are build from a framework. Only Maypole and Catalyst are really what I’d class as frameworks like Rails. This distinction is, of course, fuzzy. I’m not really sure where to put AxKit in my categories. It’s somewhere between a component and a framework I suppose.And I don’t know enough about the other things on your list to know where to put them.