Wow! I didn’t think that would have sparked such a good discussion!
I said that from my experience I don’t think the statement is true anymore as it might have been when Django first started.
START: some thoughts (don’t take too seriously)
I think designers now and back then create new designs, figure out the best way of (non) visual communication with the user and mostly do mockups that do not require knowledge of HTML, CSS or any programming.
I assume the role of the webdesigner transitioned over to the frontend developer, who knows HTML/CSS/JS and many frameworks based on that.
Again, I think designers won’t touch any HTML, CSS or even a template language.
So that leaves a frontend developer or any developer to do the work of writing templates. They know how to do programming. The DTL, with its restricted capabilities, doesn’t make it easier for them, but more difficult. They have to find creative ways to overcome the restrictions.
The restrictions were setup to make it easier for non-programmers under the assumption any non-programmer would write templates and could easily learn the DTL (and HTML, CSS, JS).
And I wouldn’t call this a philosophy nor a principle, but a good intention that paved a road to where Django is now with the DTL.
Non-programmers, who are introduced to the DTL can quickly produce amazing results. But they also quickly reach the limits of the DTL and have to deal with the quirks and idiocracy of the language. They can’t grow with the language and can’t use it in any other project (maybe in a project that uses jinja). If they could start with python for example to write templates, they could grow with the language seamlessly and eventually grow beyond templates and and take their new skill to other projects or frameworks.
Programmers have to deal with the same quirks and idiocracy of the language, but they could circumvent some problems by writing their own tags or filters or use a different template language. But most stay with the DTL, because it is the lowest common denominator.
Take this for example from the admindocs template_tag_index.html:
{% block title %}{% translate 'Template tags' %}{% endblock %}
...
<h2>{% firstof library.grouper _("Built-in tags") %}</h2>
Translation is once done using the translate tag and once by a python function, that you must know.
The good intention of the DTL could also be perceived as being condescending in a sense.
irony on
Yeah, start with this template language. Programming is too complicated for you. Yeah, it’s actually not that easy and has quirks and problems and after you managed to learn all this you can only use it here. But anyway this is a language programmers think non-programmers find easy, so please use it.
Or the designer that’s handed a toy hammer by a construction worker, because he’s going to do only interiour work anyway. Which he never will.
irony off
END: some thoughts