It's amazing to see https://www.destroyallsoftware.com/talks/the-birth-and-death... becoming more and more true with every year.

Wasn't it kind of obvious that a virtualized hardware layer is to be preferred over heterogeneous hardware?

Granted, it is surprising that browsers are increasingly taking this role rather than operating systems. But this module runs in the kernel.

Not until hardware became fast enough and compilers performant enough to support this, and not until everyone had to learn their lessons with approaches like the JVM.

> Not until hardware became fast enough and compilers performant enough to support this

Yes, but the easy part is to think about what would be possible if hardware was fast enough. Not sure what you mean by lessons learned from JVM.

I meant that automatic garbage collection is not always the way to go for some people, especially in the days when JVM GCs were not as advanced as they are now.

Ok. Yes, ideally you'd allow the user of your VM to implement their own GC. But to make this fast you typically need to support special memory barrier instructions, like a modern CPU does.

Anyway, the GC-included approach is of course the one taken by Javascript and JVM.

I assume that's one of the parts of the work done at https://github.com/WebAssembly/gc - not happening any soon yet, but it'll eventually be done.