Hi!
Wenn Du Programmlogik von Ausgabe sauber trennen willst, dann kommst Du um Templates nicht herum.
Ich sehe es als besser an, Geschäftslogik von Ausgabelogik zu trennen und nicht zu versuchen den Ausgabetext programmcodefrei zu halten. Denn Letzteres lässt sich nicht erreichen. Stattdessen tauscht man nur die Syntaxelemente der einer Sprache durch die einer anderen Sprache aus - Platzhalter sind letztlich auch nichts anderes als syntaktische Elemente. Hinzu kämen noch Kontrollstrukturen für sich wiederholende Elemente. Damit hat man außer einer erhöhten Komplexität im Codeanteil (um die Platzhalter- usw. -Syntax auszuwerten) effektiv nichts gewonnen.
Andererseits haben Template-Systeme mit anderer/einfacherer Syntax als eine ausgewachsene Programmiersprache durchaus ihre Berechtigung, beispielsweise wenn es darum geht, die Vorlagen von Nicht-Programmierern erstellen zu lassen.
Es kommt meines Erachtens immer darauf an, was man erreichen will und dann muss fallbezogen entschieden werden.
Lo!