Hallo,
Mit "normalem PHP" kann man das genauso lösen ohne eine "eigene sprache" zu lernen.
Was ist an dem o.g. Beispiel besser als eine normale foreach Schleife?
Eine Templatesprache ist absichtlich nicht mit einer Programmiersprache ebenbürtig. Sie erbt einige Strukturen von vollwertigen Programmiersprachen, und dupliziert damit natürlich Funktionen (z.B. das Durchlaufen von Listen). Andere Funktionen werden mit Absicht ausgelassen. Dadurch kann erreicht werden, dass möglichst wenig Freiheit und damit möglichst wenig Logik in den Templates möglich ist.
Natürlich kann man das mit PHP lösen, das ist nicht der Punkt. Es mit PHP zu lösen bringt die Probleme mit, die Templatesprachen zu lösen versuchen. PHP kennt die Umgebung nicht, in der es Ausgaben macht. Auch wenn PHP-Scripte standardmäßig HTML generieren, so werden letztlich nur Strings aneinandergefügt. Da PHP den Kontext nicht kennt, kann es keinen automatischen Kontextwechsel vornehmen. PHP kennt zudem die Struktur der Eingaben und Ausgaben nicht; es handelt sich um Werte und Objekte unterschiedlicher Typen. Die meisten Templatesysteme haben ein sehr simples Typsystem: Einfache Werte/Skalare, Listen, Objekte/Hashes. Ihr Anwendungsbereich ist viel spezifischer.
Eine eigene Sprache benutzt man immer dann, wenn sie das Ausdrücken einer gewissen Logik vereinfacht. Es gibt viele derartige Sprachen in der Web- und Softwareentwicklung, und sie zu lernen ist in der Regel vorteilhafter, als eine ungeeignete Sprache zweckzuentfremden.
Mathias