Looking at Catalyst

Been reading the London web frameworks post mortem over on the London.pm. That and phplondon make me wish I was there rather than here right now.

Anyway, apperently the Perl crowd feels catalyst “lost”. What’s Catalyst? Basically Perl’s answer to Rails.

Reading Simon Wistow’s remarks, I’m personally more convinced about Catalyst because it’s flexible.

There needs to be a slogan like “A framework is for life, not just for Christmas“. Once you start writing code against a framework, you’re stuck with it, at least for as long as you’re willing to maintain that code.

I’ve been burnt by PHP frameworks before and there are very many to choose from. The main issues I’ve run into time and again are either;

  1. It’s incomplete – work in progress (perhaps stalled)
  2. It’s too inflexible when it comes to edge cases and my experience has been real projects are, in fact, 50%+ edge case. Once you hit an edge case, it’s very easy to blow any time you saved elsewhere to the point where you even consider “vanilla PHP” (or whatever you’re using) might have been smarter.
  3. Half way down the road I realise I’ve misunderstood how it’s intended to be used and now have a bunch of code that needs an overhaul. Compounded with point 2 there’s no cheap route to box my way out – re-write.
  4. Not integrated – too much time spent glueing different libraries together
  5. The framework, simply, sucked (those I can spot in advance these days).

Side note: sadly WACT still falls into category 1. here (it’s very honestly labelled alpha) which is a shame because personally think Jeff is sitting on PHP’s “answer to Rails”, not that comparison is needed. In fact think Jeff has a design which really challenges notions of MVC on the web – can only really express that by linking to his hangman example (which I guess you’ll either “get” or you won’t). Jeff’s MVC notes are also outstanding. What I wish for with WACT is described here , which may starting rolling out of here some day.

So for a long time have been avoiding anything MVC and sticking to page centric designs because they work and stuff get’s done. Side note: those that scream “spagetti” should evolve – with self discipline (yes – something that doesn’t usually scale to team development) you can write stuff that you can live with this way.

Anyway – got a personal project I’m starting to think seriously about, which will revolve around a shopping cart and baby clothes. Nothing major but having surveyed the “off the shelf” Open Source options it’s realised it’s a DIY job.

A friend, who’s advice I trust, convinced me a take a look at Catalyst and the more I see, the more I like. Was yet more convinced reading this, specific to what I want to do. My main issue is time – number 2 child is arriving soon, after which even less time and I want something where there’s a end to development in sight.

So – will see how it goes with Catalyst, assuming I get started at all. Given more time, may document some experiences – also have had these “Perl for PHP programmers” notes in my head for a long time now, which might fit into that.

Perhaps that’s some sort of consolation to the Londom.pm crowd who felt Catalyst lost e.g. “PHP fanboy thinks about Catalyst” ;)

Win an Annual Membership to Learnable,

SitePoint's Learning Platform

  • http://www.ohnnyj.com ohnnyj

    I know what you mean about getting things done. I have spent countless hours trying to design the “perfect” application a la MVC when I probably would have been done if I had chosen to use “spaghetti code.” I’m all for a well-designed app but sometimes (most of the time?) it is not necessary.

  • rod

    Harry,

    Have you seen symfony?

    If so, what are your toughts?

    Thanx

  • Pingback: SitePoint Blogs » Catalyst Impressions

  • http://www.phppatterns.com HarryF

    Have you seen symfony?

    Have looked at symfony and it looks good – there effort that’s gone into things like the i18n support is a good sign to me and tells me much about the mindset of the developers involved.

    I haven’t tried to install it – just scanned bits of the source. To be completely honest though, what’s put me off is seeing phing around.

    Can’t really say anything more useful than that right now. Don’t really have the complete picture of how it works.

    Otherwise on the PHP front I’m holding for the Zend framework right now.

  • Seagull

    What are people’s thoughts on Seagull? (http://seagull.phpkitchen.com). It’s based on PEAR, which is of course good and bad. I’ve been using it for a year now, and I’m fairly satisfied, at least I don’t have to spend forever configuring action mappings, and the docs are good. Main problem is speed and tight coupling between models and controllers, but libraries are set-up very nicely.

  • Pingback: SitePoint Blogs » Catalyst Decisions