StringTemplate vs. Velocity vs. Freemarker
I have recently been introduced to StringTemplate,
"...a java template engine (with ports for C# and Python) for generating source code, web pages, emails, or any other formatted text output."
Having used Velocity and Freemarker before, it was interesting to find out what distinguished StringTemplate as a template engine. What I've found is that it's perhaps the most strict implementation of the model-view separation paradigm.