Web Assembly
початок
Нафіга?
- Портування і виконання в web вже наявного коду відмінного від JavaScript;
- Не порушуючи цілісності вже існуючої веб-екосистеми.
WebAssembly це нативний код CPU?
Ні! WebAssembly - це компіляція в проміжний формат, який скоріше схожий на байткод в .NET або Java, ніж нативний машинний код

WebAssembly це асемблерний код?
Ні! WebAssembly в своїй типовій формі не є ні текстовим поданням, ні специфічним для процесора бінарним представленням, хоча специфікація WASM визначає і текстове представлення мають одне з розширень: .wat або .wast.
Нова заміна "Java Applets" /ActiveX/Flash/Silverlight ?
Ні! WebAssembly використовує існуючі частини віртуальної машини JavaScript і її середовище ізоляції (sandbox)
Більшість же плагінів мали свої віртуальні машини які створювались для конкретних мов
Браузер не відповідав за безпеку, у WebAssembly же не можна викликати код обійшовши слої безпеки браузера
Він дає нові можливості ?
Ні! Він робить все те ж, що вміє JS
Робота з DOM
- Прямого доступу не має
- Можна через JS маніпулювати, але це додаткові витарати на де/серіалізацію об'єктів
Він швидший за JS?
"некоторые говорят что да, некоторые что нет"
- залежить від вибору мови/компілятора і його налаштувань (С++, Rust, PHP)
- повільний: маніпуляції з DOM
- швидкий: ігри, криптографія, емулятори, кодування / декодування мультимедіа
JS фігня потрібно вчити C++, Rust...

В топку С++, вот бы на JS писать...(

Ха, не зря я С++ учил

У меня даже сертификат есть
Ні! Wasm - це створення збірок, які можна викликати з JavaScript. Зробив лібку і запускай
Скоро ви не знатимете на який мові код підключаєте в проект
Чи можна його заблокувати?
Ні! (або так же як JS)
Там же якийсь байткод, тепер нічого не стирити
А ви обфускований js пробували читати?
Ні! Так же є карти коду та браузери розпаршують цей формат ще краще JS
Над чим працюють
- Threads
- Garbage Collection
- купу всього
Web Assembly
By Kolya Koval
Web Assembly
- 308