, JavaScript , , . — , Java, Flash Silverlight. , , . HTML- - . JavaScript . — , , - .
<video>
, CSS- HTML-
canvas
. . , , HTML, .
, . , JavaScript -, , , , - , JavaScript. , , asm.js. ? — .
: ,
, JavaScript, - . , . ( ). , , . — , , , JavaScript. , JavaScript, .
, , , , . . , , . , , «» . , , . , ? , ? JavaScript- Angular, React Vue? , , «» ?
, , . , .
? Dart
— . — .
, JavaScript, , Babel, ( ) JS-, , . , , TypeScript ( JavaScript, , , , ,
null
). TypeScript- JavaScript. JavaScript.
Asm.js:
asm.js. , 2013 Mozilla. . , asm.js, , . JavaScript.
asm.js , JavaScript. Asm.js- JS, . , asm.js, , . , asm.js , , . . Firefox 3D-, C++, , , JavaScript . asm.js , Emscripten.
, Unreal,
asm.js — , JavaScript. , asm.js, JavaScript-, , . () . JavaScript — , .
WebAssembly:
asm.js , - , , . . WebAssembly (WASM).
WebAssembly asm.js, - . — . WebAssembly-, asm.js, JavaScript. «» . , , . , . , WebAssembly-, . ( — , ), WebAssembly JavaScript. WebAssembly .
WebAssembly-
WASM-, , , , , C:
int factorial(int n) { if (n == 0) return 1; else return n * factorial(n-1); }
WASM :
get_local 0 i64.eqz if (result i64) i64.const 1 else get_local 0 get_local 0 i64.const 1 i64.sub call 0 i64.mul end
, , .
WebAssembly , . . (, WASM- , , ).
WebAssembly 2015 . « » (Chrome, Edge, Safari Firefox) . Internet Explorer WASM , , IE WASM- asm.js-. ( — . IE !)
WebAssembly -
WebAssembly, , , C++. — , . , . (, fastq.bio WebAssembly ). , - , , . WebAssembly , , , « JavaScript» . WebAssembly, , JavaScript-.
. WebAssembly- JavaScript, «» JavaScript. , WASM- , , — , JavaScript-. , WASM- . , , JavaScript-, DOM .
, , - , WASM. « » , WebAssembly. , Blazor Microsoft .NET, WASM-. JavaScript ( ), ( , , ). , Blazor , . — «», — , JavaScript, .
Blazor, , , WebAssembly. , , Pyodide. Python- .
— . WebAssembly, , , C++ Rust, . WASM , JavaScript, JavaScript-, , Angular, React Vue.
WebAssembly . — , « ». «» , , , -. , WebAssembly , . , Blazor — WebAssembly, , DOM. , , .
WebAssembly — , JavaScript. , , - JavaScript — . , , - , , . . WebAssembly , , « », . , WebAssembly JavaScript WebAssembly.
, WebAssembly , JavaScript. . JavaScript Java-, -. - , . , , .
! , WebAssembly JavaScript?