ReactiveConf 2017 - Tom Dale: Secrets of the Glimmer VM

ReactiveConf · 2K views · 2017 · 33:23

Open on YouTube

Web developmentCompilers, interpreters & program analysistalkdated

Why Hacker News recommends it

HN points to it for understanding Glimmer and Ember's view layer, and as a reference for opcode-compiled templates.

What it is

Tom Dale explains the internals of the Glimmer VM, Ember's rendering engine, which compiles templates to opcodes. The talk includes a performance benchmark demo.

Recommended by 1 HN commenters across 1 different months, 2018 to 2019.

What Hacker News said

Strong rec mhale · 2018-01 · on “Guide to JavaScript Frameworks”

Ember is the PostgreSQL of JavaScript frameworks. Similar to the way Postgres has deep roots that trace back to Ingres[1] in the days before SQL was a solidly established standard, Ember traces it roots back to SproutCore[2] in the JS framework pre-historic era of 2010. And the same way PostgreSQL was seen as a second-tier or only "historically significant" open source database, the PostgreSQL team just kept at it, toiling away year after year, steading churning out awesome code and excellent documentation, getting better and better with each release. Like clockwork. In the same way PostgreSQL is now, finally, enjoying more popularity and getting the recognition (long overdue in my opinion)

Cites lightblade · 2018-11 · on “Hyperscript Tagged Markup: JSX alternative using standard tagged templates”

Yes, the runtime needs to be JavaScript. It’s not obviously faster, but it’s been benchmarked to be faster. [this video] You can skip to 29:34 for the performance demo.

Cites jonkoops · 2019-10 · on “React Concurrent Mode”

This is a good development. Honestly one thing I very much think is a downside about React is the fact that your template is also JavaScript. Don't get me wrong this is incredibly powerful and can be very expressive, but it comes at a cost. That cost has the same cost as other JavaScript - it's blocking, cannot be paused and has all the possibilities of de-optimizations that might occur in the JIT. The Ember team faced a similar problem in the past and I find their solution to this problem quite intriguing, even in it's obscurity. Instead of compiling their templates to JavaScript they instead compile them to opcodes in a binary format which is executed by a virtual machine. This has several