Meta-programming, or writing programs that customize, guide and modify other programs, is not a very new idea (LISP programmers have been doing it for decades) - but XML gives it a profoundly new twist. XML greatly increases the ability of the user to exercise control over computer programs, by editing easily understandable text files. These programs know as little as possible about what they are actually being used to do. Instead, their structure and behavior are described with XML in domain-specific languages, and the programs "interpret" the descriptions.