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?