in reply to Push style templating systems

Parr goes beyond push/pull in his article. The article is titled "Enforcing Strict Model-View Separation in Template Engines".

In his paper he shows that some additions made to "push" are harmless with regard to enforcing model-view separation, i. e. looping and conditionals ("if", but only when you confine to pure boolean testing, no expression evaluation).

He even mentioned HTML::Template as being clean in this respect.

So, while HTML::Template implements looping via its LOOP mini-language control, StringTemplate uses template-recursion for that. Both have, of course, the restricted if, mentioned above. But you list only StringTemplate but not HTML::Template. Why?

Update (2008-03-23 19:25+0000):

Or put the question the other way round (assuming that Rhandom is right, that the point of your list, at least with the Perl part is "no mini-language"): Why do you endorse/mention/include StringTemplate, though it has a mini-language?