Last night I went to a presentation on catalyst. Catalyst is a web MVC framework for perl similar to rails. How similar? spooky similar. I felt like it was a tutorial on rails from a year ago with the names of a few things changed. Config files used YAML. By default it used port 3000 with a built in web server. “HTML::Simple” instead of “WebBrick”, but the concepts were almost identical. It has been said that imitation is the highest form of flattery, but I think this may soon go beyond imitation. Perl is an older language than ruby with a more libraries, and a bigger developer base. At the moment it is lagging behind largely because of the sucky object oriented model, but perl6 fixes that. Allison Randal (one of the two OSCON chairs) was sitting in the back of the room working on perl6 object code only half paying attention to the presentation. Randal Schwartz the author (impressively good author) of learning perl was sitting next to me, and commented about how much better catalyst was than the last time he looked at it. Maybe in a year perl6 will be out, and Randal Schwartz will have written a book on catalyst. Then it could be a real contender with rails, but I don’t think it is now.
They didn’t just copy the good things about rails they also copied MOST of the rails deployment headaches. I asked a lot of questions about memory usage, how many requests it could handle at a time, etc. The presenter said that his main app used over 100 megs per process, each process could only handle a single request at at time, and he had three processes running at once. That memory usage is huge even by rails standards. Overall it seemed like the deployment strategy he was using was very similar to techniques used in the early days of rails that I would consider as having been depreciated in the rails community over a year ago.