Hi!
Dazu ein kleines, etwas absurdes Beispiel: Bei einem Request soll eine Zahl als Wort ausgegeben werden, also http://example.com/1 soll "eins" ausgeben, .../2 soll "zwei" ergeben und so weiter. [...]
Wenn von vor dem Template zuständigen Instanzen die Requests /1, /2 und /x bereits ausgewerte und die Übersetzung in "eins", "zwei", ... vorgenommen wurde - dann braucht im eigentlichen "Template" doch nur noch irgendwo die Ausgabe zu stehen: <?php echo $zahlAlsWort; ?> reichte theoretisch schon aus.
Ja, damit hast du ein Programm, dass diese Ausgabe erst erzeugen muss und mit allem damit verbundenen Mehraufwand, im Gegensatz zu einfacheren komplett statischen Dokumenten.
Ich vergleiche hier den Mehraufwand von Smarty (stellvertretend für auf PHP aufgesetzte Template-Systeme) gegenüber "reinem PHP" mit programmatisch erzeugter Ausgabe versus statischem Dokument. Man könnte ja Struppis Argumentation weiter zuspitzen und fragen, warum überhaupt PHP und nicht gleich einfache und performante statische Dokumente?
Es ist also nicht immer sinnvoll, die vermeintlich einfachere Lösung zu nehmen. Template-Engines wie Smarty können durchaus auch einen Mehrwert gegenüber reinem HTML+PHP liefern, für den es sich lohnt, den hoffentlich nur anfänglich vorhandenen Mehraufwand in Kauf zu nehmen.
Das mag in manchen Fällen durchaus so sein - nur dein konkretes Beispiel sehe ich jetzt eher als Argument für Struppis Aussage.
Seine Aussage war, dass man erst Smarty zusätzlich zum bereits als vorhanden anzunehmenden PHP erlernen muss und die Smarty-Engine jedes Mal Rechenaufwand kostet. In meinem Beispiel muss man eine Programmiersprache zusätzlich zum bereits vorhandenen HTML lernen und der Rechenaufwand des programmierten Systems gegenüber einer statischen Auslieferung Minuspunkte bei der Performance-Betrachtung ergibt.
Diese Betrachtung geht übrigens von einem Einzelkämpfer aus. Wenn die Arbeit für einen Programmierer und einen mit Programmierung wenig am Hut habenden Webdesigner aufgeteilt werden soll, kann eine Template-Engine auch wieder in der insgesamten Bilanz Punkte pro Template-Engine ergeben, weil deren Syntax vielleicht leichter zu erlernen ist und eventuell robuster gegenüber "echtem" Programmcode sein kann.
Lo!