2 ms·
OK so I guess the VM outputs a virtual DOM tree from a handlebars template, rather than text? I don't really see why you can't do that with a simple tree inter
by chubot 10y ago
OK so I guess the VM outputs a virtual DOM tree from a handlebars template, rather than text? I don't really see why you can't do that with a simple tree interpreter, but sure why not.
I've implemented template languages in multiple languages. I've also thought of compiling different languages to the same VM with string instructions (IIRC the old Cheetah template language compiles to Python bytecode).
I sort of see where this is going but the docs weren't particularly clear to me. If anything it sounds like there are a lot of other components besides the VM, which weren't really described in the blog post, and I couldn't find any links.
- steveklabnik 10y ago> so I guess the VM outputs a virtual DOM tree from a handlebars template, rather than text? As the article mentions, this technique is distinct from virtual DOM. The article is light on what specifically it does though. From the article: > I'll describe the details of this approach in another post, but the short version is that we compile templates into "append-time" opcodes for a bytecode VM. The process of running the "append-time program" produces the "updating program", which is then run every time the inputs change. anyway. > If anything it sounds like there are a lot of other components besides the VM, which weren't really described in the blog post, and I couldn't find any links. There's a little bit; that is, this post is specifically about Glimmer's VM; Glimmer itself has a few more things, just like React is more than just a virtual DOM implementation. In Glimmer's case, there's glimmer-component, which lets you write web components, and glimmer-application, which lets your register your components into a cohesive whole, etc. TL;DR: Glimmer as a project is similar to react. It has some significant and novel implementation details that keep it speedy.
- chubot 10y agoOK thanks, that helps. It sounds potentially interesting but in its early stages.
- steveklabnik 10y agoNo problem! It is and it isn't; that is, all of this is extracted from Ember, so it has had a lot more maturity and testing than you might think at first. Not _super_ so as it's still relatively new, but deployed in lots of big places.