Domain Specific Languages
Support a domain specific model directly.
Can constrain the programmer to eliminate potential errors.
Side effects can be automatically handled by the compiler.
Can fully take advantage of domain specific optimizations.
Programmers must be trained for the new language.