I’m currently looking at Python templating systems, for various reasons. During my search, I came across the following exchange in a perl.com article called Choosing a Templating System, between fans of allowing your real language (in this case, Perl) to be inlined in the templates, and fans of having no “real” language in the templates and instead allowing a “mini-language” or just variable substitution:
IN-LINE: Mini-languages are stupid. I already know Perl and it’s easy enough. Why would you want to use something different?
MINI-LANG: Because my HTML coder doesn’t know Perl, and this is easier for him.
IN-LINE: Maybe he should learn some Perl. He’d get paid more.
MINI-LANG: Whatever. You just want to use in-line Perl so you can handle change requests by putting little hacks in the template instead of changing your modules. That’s sloppy coding.
IN-LINE: That’s efficient coding. I can knock out data editing screens in half the time it takes you, and then I can go back through, putting all the in-line code into modules and just have the templates call them.
MINI-LANG: You could, but you won’t.
IN-LINE: Is it chilly up there in that ivory tower?
MINI-LANG: Go write some VBScript, weenie.
I think that that covers the differences rather neatly. And I still can’t decide.