Второе рождение переживает концепция передачи на докомпиляции нативного кода на клиенте. Переносимость и максимальная скорость. В древние времена это существовало в виде... мнэ... склероз... проекта Juice (?) -- в результате компиляции получалось дерево разбора, которое уже на месте докомпилилось под клиентскую платформу.
Итак, встречаем продолжение этой идеи: Asm.js.
Как и в .NET и в отличие от Juice, вместо дерева разбора компилятор порождает "байткод", оптимизированный не для исполнения, а для докомпиляции. Но здесь "байткод" может непосредственно исполняться интерпретатором JavaScript. Т.е. "байткод" похож на JavaScript, но если внести в него валидные с точки зрения JS правки, то велика вероятность, что Asm.js понимать его уже не будет.
Поскольку скорость непосредственно исполнения страшна донельзя, можно рассматривать это прежде всего как маркетинговый ход -- чтобы пользователи браузеров, не поддерживающих Asm.js, могли прикоснуться к чуду, но были вынуждены в итого сменить браузер.
Может быть, будет жить. Хотя подход Juice (?) был разумнее.