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 маніпулювати, але це додаткові витарати на де/серіалізацію об'єктів

 

https://www.vugu.org/

Він швидший за JS?

"некоторые говорят что да, некоторые что нет"

  • залежить від вибору мови/компілятора і його налаштувань (С++, Rust, PHP)
  • повільний: маніпуляції з DOM
  • швидкий: ігри, криптографія, емулятори, кодування / декодування мультимедіа

 

 

 

https://takahirox.github.io/WebAssembly-benchmark/

JS фігня потрібно вчити C++, Rust...

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

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

У меня даже сертификат есть

Ні! Wasm - це створення збірок, які можна викликати з JavaScript. Зробив лібку і запускай

 

Скоро ви не знатимете на який мові код підключаєте в проект

 

https://docs.assemblyscript.org

Чи можна його заблокувати?

Ні! (або так же як JS)

Там же якийсь байткод, тепер нічого не стирити

А ви обфускований js пробували читати?

Ні! Так же є карти коду та браузери розпаршують цей формат ще краще JS

Над чим працюють

  • Threads
  • Garbage Collection
  • купу всього

Web Assembly

By Kolya Koval

Web Assembly

  • 308