Jeremy Smith's blog

Entry Is Labelled

Catalyst: First Impressions

Last night, I made my way through the perl.com Catalyst tutorial. I had been meaning to do this for a while. Actually, I had been meaning to do this with Ruby on Rails; but I ♥ CPAN too much, so I gave Catalyst a shot.

Wow!

I mean WOW!

I've fallen behind on my web development methodologies. Frankly, because I don't really do that many built-from-the-ground-up totally-in-house web applications, anymore. Back, before I worked at ITS, I worked at Weatherhead in ITG. Back then, that's all I did. Nowadays, working in ITS for Middleware Engineering, I spend most of my time creating middleware frameworks, doing ops on various systems, or taking already created open/available source projects/products that solve 80% of my problem and dig into their internals or use their plugin frameworks to adapt them better to Case and fill in the final 20%. So, that's why I have fallen behind; I just don't do it anymore. And, when I do do it; I am usually already waist dip in an existing product's code as was the case with Movable Type.

Regardless, it was time to freshen up the old skill set. Plus, I am unabashedly a geek; so this kind of thing actually appeals to me.

My first task was to install it. I have 97 computers at home, but 96 of them are in various states of disrepair or have been discarded entirely. This leaves me with my Windows laptop. The computer already had ActiveState's ActivePerl on it; but that's not saying too much because PPM, the Win32 package manager work-a-like to CPAN.pm, doesn't always "work," so much. But, according to Hey there windows user! Wanna try Catalyst? entry in Draven's journal, it was just a matter of:

ppm> install Module::Build
ppm> repository add Theoryx5 http://theoryx5.uwinnipeg.ca/ppms/
ppm> repository add Catalyst http://home.ngmedia.net/chansen/catalyst/ppms/
ppm> install Catalyst

This "sorta" worked. It installed Catalyst, but after much futzing, I realized I had to manually upgrade HTTP::Headers and manually ppm install Catalyst::Model::CDBI::CRUD, Catalyst::Model::CDBI::Plain, and Catalyst::Model::CDBI::Sweet.

Okay, but after that, everything went swimmingly.

And, who would have thought that MVC web frameworks have become so powerful that a simple two page article on perl.com can have you running a completely functional AJAX-ified wiki in minutes. That's where the WOW! part came in.

I should have done this a long time ago. After going through the steps, it was seriously a web development epiphany. It seems foolish to be using anything but a framework like this for any (and I mean any) web development work. And, this will already add to my above normal levels of hubris as I scoff at others who haven't adopted a framework like this.

Comments

  1. gravatar

    I checked out the documentation and it looks like the epiphany you speak of relates very much to the discussion we had not too long ago on that LAMP posting -- specifically the posts about serving files vs. serving methods. Looks very similar to Ruby on Rails, CherryPy, & Subway [but with more punctuation ;)]. Can't wait to see what you come up with this framework.

  2. gravatar

    ...

    Did you say 97 computers??

  3. gravatar

    "97" is my arbitrary large number. Any quantity greater than 3 is "97."

    You can have none.
    You can have one.
    You can have a pair.
    There can be three of something.
    Anything greater than that means you have 97.

  4. gravatar

    About installing Catalyst by using ppm...
    Using the commands you have in the textarea might generate a problem. I mean those trailing slashes in the lines adding the repositories.
    (http://aspn.activestate.com/ASPN/Mail/Message/ppm/1596051)

  5. gravatar

    I got an error when trying to install Catalyst:

    Error: no suitable installation target found for package Catalyst.