N3K,
Многие программисты на каком-то этапе своего пути делают собственные шаблонизаторы.
Вначале в ход идут строковые функции.
Потом этого становится мало. Нужны циклы. Потом нужны вложенные циклы.
Строковых функций становится мало.
Кроме того, возникает вопрос безопасности при многоступенчатой обработки шаблона строковыми функциями. Ведь пользователь может ввести в текстовое поле символы "{ARTIST}", и они могут быть обработаны.
В результате возникает необходимость в создании парсера.
Даже известный шаблонизатор Smarty осознал ограниченность использования строковых функций для шаблонизатора, и с версии 3.* используется уже парсер.
http://smarty-php.googlecode.com/svn/branches/Smarty3Alpha/README
Smarty 3 now uses a real lexing tokenizer. This opens all kinds of doors
such as template math, function recursion, among many other things.
Позже может возникнуть вопрос переносимости шаблонов с одного языка программирования на другой (например, разные части одного приложения работают и на PHP, и на Python).
Возникает вопрос об использовании общепринятого языка разметки - xml, xslt.
В ход идут такие библиотеки как
http://sourceforge.net/projects/webtemplate
Для удобства дизайнеров, упрощения верстки, в ход начинают идти такие шаблонизаторы как
http://phptal.motion-twin.com/
или
http://phpoot.sourceforge.jp/zogan/
Потом начинаются религиозные войны на почве того, какой шаблонизатор лучше.
А люди, которые все это уже перепробовали, начинают понимать, что возможно, фраза из мануала к Zend Framework имеет под собой здравый смысл:
...PHP сам по себе представляет собой мощный шаблонизатор...
Вывод: прежде чем начать создавать новый шаблонизатор, стоит подумать, а нужен ли он вообще, и, если нужен, - может быть присмотреться к существующим решениям?