and other people keep pointing at languages without templates and metaprogramming as "good for learing". it's closed circle.
The problem with template-programming in XSLT/C++/D is that if you want to learn functional programming you are better off using a good functional language.