The first Ember view layer was designed kind of like you'd expect: it treated the "template language" as a very specialized external DSL with a decent amount of special syntax. In addition, the implementation was very ad-hoc, which led to a number of persistent, whack-a-mole bugs (including cases where "string literals" were interpreted as expressions and bare words were interpreted as string lite
![Designing and Implementing Glimmer Like a Programming Language](https://cdn-ak-scissors.b.st-hatena.com/image/square/35423acb9fe32f002a7445d12502029571f453ac/height=288;version=1;width=512/https%3A%2F%2Fwww.thefeedbackloop.xyz%2Fcontent%2Fimages%2Fsize%2Fw1200%2F2019%2F12%2Fcover2-1.jpg)