in reply to the disadvantages of mini-languages

This is rather a moot point. Mini-languages suck insofar as they are often restrictive and insufficiently expressive, but whether you use Perl inside your templates or a template-specific language, assuming the language is fairly expressive, is irrelevant.

Think about it: would you write a system kernel in Perl? Or rewrite a very simple Shell script in Perl instead? A complex Perl script in C? Or a Shell script in C? There are more language examples, some already mentioned, like SQL and make.

The fact is that languages are geared toward certain domains. Perl is a decent language for templates (not nearly as annoying as C would be for the purposes of complex Perl scripts, f.ex), but templating-specific languages can still make things easier for writing templates. They just need to be expressive enough to handle the job; something which homegrown templating systems generally fall short of. The Template Toolkit OTOH was designed with an abundance of functionality from the word go, and indeed it does a very good job at what it's made for.

Makeshifts last the longest.

  • Comment on Re: the disadvantages of mini-languages