3. WebAssembly это очередной "Java Applets"/ActiveX/Flash/Silverlight?
Нет! WebAssembly отличается от Java-апплетов тем, что он использует существующие части виртуальной машины JavaScript и ее среду изоляции (sandbox), вместо добавления другой громоздкой виртуальной машины посредством плагинов или расширений и тем самым снижая надежность и безопасность системы в целом. WebAssembly также не позволяет вызывать нативный код или системные вызовы напрямую, минуя слои безопасности самого браузера или другой виртуальной машины, как это делали Flash или Java-апплеты (через JNI).
Плагины ActiveX были встроенными библиотеками нативного кода, в которых безопасность строилась на доверии к третьей стороне. Для WebAssembly доверие возлагается исключительно на производителя самого браузера и только на него.
Кроме того, большинство этих плагинов имели свои виртуальные машины, которые создавались для конкретных языков. Например, Java Applets - для Java, Flash - для ActionScript, Silverlight - для C#. WebAssembly же - это унивирсальная виртуальная машина c открытым стандартом, готовая принять в свои объятия любой язык, будь то Haskell, PHP или TypeScript.