Nebenher machte ich Erfahrungen mit sehr umfangreichen TE's wie z.B. Perl's Template::Toolkit (TT) und kam immer wieder zu dem Schluss, dass in der Praxis solch Umfang wie das TT bietet, unsinnig ist.
HTML::Template sollte Dir da deutlich besser gefallen.
Meine Eigenentwicklung ist deutlich performanter. Meine Templates sind jedoch kompatibel zu HTML::Template was die %-String-Begrenzer betrifft.
In Fakt kochte da jeder Designer sein eigenes Süppchen und exportierte Stück für Stück die Programmlogik ins Template -- Ein Horror für den CTO (Onion Pattern).
Ja, das möchte man nicht.
Die Praxis besteht darin, umfangreiche Seiten Beispiel über einfache Templates abzuwickeln, d.h., Loops sollte eine TE schon können:
Loops, aber auch Fallunterscheidungen, Escaping-Funktionalität, Includes.
Einfache if/else/endif ja, damit kann man ja auch das Template umschalten. Was Includes ggf. überflüssig macht ;)
Wobei es eigentlich völlig Wurst ist, ob die Einzeldaten serverseitig ins Template gerendert oder als JSON gesendet werden, wenn Templates für Perl wie JS identisch aufgebaut sind.
Der Template-Engine sollte das egal sein, stimmt. Insgesamt völlig Wurst ist es aber bestimmt nicht.
Die Oberbegriffe für das was ich damit meine sind Portabilität, Transparenz und Abstraktion.