Neither of these are true anymore, so it is time we let template languages go.
The essence of templating is string interpolation. That is what ERB, Jade, HAML and similar languages do. ES6's Template Strings are fantastic at this. They are multi-line, and they allow interpolation.
Even if we supposed that the notion of separation of view and view-logic was a reasonable one, the baggage that a dedicated templating language brings in is simply not worth it.
Here are examples of the baggage: 1) the choice of picking a templating language is almost of a religious nature (HAML vs ERB).
2) Custom syntax and needs for each language - the `surround`, `suffix`, and `precede` helpers in HAML.
3) Templating languages almost always reinvent programming constructs poorly. Greenspun's tenth rule is really apt here:
Any sufficiently complicated templating language contains an ad hoc, informally-specified, bug-ridden, slow implementation of a turing complete programming language.
These days I rely a lot on JSX, which is rigorous and catches errors, thanks to compile-time parsing, and well-integrated into the language so that I can use programming language abstractions without wringing them through ill-defined extension points in a templating language.