Wednesday, May 9, 2007

Full Stack, Revisited

A few weeks back, I posted some thoughts about full stack development. The short version: full stack has its uses, but I'm not a huge fan. I inadvertently left commenting enabled on that post, and Jesse Vincent (as if he weren't already busy enough without responding to my FUD) made a thoughtful, cheerful response:
...or if it's not fast enough or pretty enough, the framework can be improved and all sorts of applications can benefit ;)
Good point. And Jifty (Jesse's full-stack system of choice- e.g. he's the author) is changing my mind about a lot of things. Some of my favorite things about Jifty so far:
  1. Template::Declare. I've used (and liked) Mason, HTML::Template, Template::Toolkit, and a few others in production, and they all share something in common: they allow you to mix markup and logic. Well, Template::Declare has shockingly ended all that by eliminating the markup from the equation. Eek! I may never write markup again. Hope I can do everything I need to in CSS...
  2. Jifty::Dispatcher. Dispatching is another difficult problem for which there are a few reasonably good solutions. But I've never used one as intuitive and powerful as Jifty::Dispatcher. Together with Jifty's native ability to do continuations, performing tasks like selectively requiring a login have never been easier.
  3. Jifty::Plugin::*. I'm a bigger and bigger fan of mix-ins as my design pattern of choice when creating a web application. Jifty's Plugins are obscenely easy to use (add a line config.yaml), and not as obscenely difficult to write as one might expect. Good plugin architecture is one of the reasons I've used CGI::Application in the past, and I think Jifty made all the same right decisions.
It's not all candy and roses, but I think it's headed that way. Jifty still wants more $hype, more documentation, and fewer bugs, but those things will all come with time and use. In the meantime, it's nifty and getting niftier.

So, Jesse: mea culpa. I think the system is great and getting better.

Labels: ,






<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]