All the Perl that's Practical to Extract and Report

Navigation

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Without JavaScript enabled, you might want to
use the classic discussion system instead. If you login, you can remember this preference.

Please Log In to Continue

You do an awful lot of hacking. Part of the Jifty philosophy is that we provide (at least) one well integrated way to do everything you need to do. We're big fans of HTML::Mason - it's the templating toolkit that best fits with our model of things - so it's the toolkit that's well integrated into Jifty. We'd love to hear suggestions about how to get TT or other templating engines to support the bits we need.

I think if you want TT support it will have to come from the Jifty community.

Don't get me wrong. Mason is great. It's fast, it's powerful, it's widely used and therefore widely known. The problem with Mason is that in just about every shop I've worked at, a lot of application logic seems to wind up in the Mason code. This is makes it harder to test and makes components harder to reuse, even if their dislpay properties are generic. Like a subroutine or a method, a template should try to do as little as possible, otherwise you limit your ability to reuse it. Even though Mason do

I think the right way to allow that “natural” behaviour is to make it really, really easy to avoid Perl (unlike Mason), rather than making it really, really hard to use Perl (as TT2 prefers).

The only templating system I’ve ever seen that I really liked is unfortunately Python-only: Kid [lesscode.org]. It’s XML-centric, but it exploits that choice to do its job extraordinarily well: the majority of display logic is described declaratively using namespaced attributes. You need to reach down to Python only when you’re actually doing something that falls outside the scope of “control flow.” Unfortunately, as I said, no Perl port exists. (It’s almost enough to get me to consider Python. Instead, I have been doodling a Perl port on and off for a while, as if I didn’t have enough unfinished projects.)

A big inspiration for that language was TAL [zope.org], for which we do have several implementations on the CPAN, Petal [cpan.org] probably being the most widely known. I am slowly converting over to that, because it’s the next best thing to massively messy imperative spaghetti TT2 templates, though it doesn’t do Perl (or any other language) in the template, instead inventing its own crippled expression minilanguage.

I am really tired of minilanguages.

In my old age I have lost all patience for the weird limitations of ad-hoc notations. Give me a real damn language or give me death.