Зміст
WebAssembly (wasm) відрізняється від інших веб-API, з якими ви могли грати. Це стандарт, який визначає двійковий виконуваний формат для клієнтських програм в Інтернеті, який можна запускати у браузері, одночасно використовуючи швидкість та низькі рівні апаратних можливостей машинного коду. Хоча це порівняно новий стандарт, який лише зараз привертає увагу, він уже підтримується у всіх основних браузерах і має початкову екосистему інструментів.
Це являє собою велику зміну для Інтернету, де JavaScript (або його абстракції, такі як TypeScript) був єдиною мовою, доступною для кодування. Введення WebAssembly означає, що зараз існує платформа, яка дозволяє писати та компілювати C, C ++ та інший код для запуску в браузері.
По суті, якщо ви пишете модуль wasm, ви компілюєте його у формат байт-коду, який можна виконати на будь-якій платформі, що підтримує WebAssembly. Це схоже на байт-код Java, який працює на JVM. Як правило, ви не очікуєте безпосереднього написання коду Wasm.
Вам потрібно швидко створити сайт, не потребуючи коду? Вам потрібен конструктор веб-сайтів. Маєте на увазі більш складний сайт? Отримайте правильний веб-хостинг.
Переваги WebAssembly
Це цікаво з двох причин. По-перше, це дозволяє кодувати веб-мовами, відмінними від JavaScript. Це переконливо для багатьох розробників, які мають стилістичні уподобання або досвід роботи на інших мовах. WebAssembly спочатку був розроблений, щоб зосередитись на розробці C та C ++, і він забезпечує можливості таких мов, таких як управління пам’яттю низького рівня.
Є підтримка Rust, іншої мови, розробленої Mozilla. Однак також очікується, що стане доступним широкий спектр мов та компіляторів, і в якийсь момент це введе підтримку мов, що збираються сміттям, таких як Java. Ви знайдете експериментальні компілятори для інших мов, які стали доступними.
Експерименти показують, що код WebAssembly можна проаналізувати значно швидше, ніж JavaScript
Друга перевага - це продуктивність. Експерименти показують, що код WebAssembly можна проаналізувати значно швидше, ніж JavaScript (до 20 разів). Це відкриває можливість розробляти більш складне програмне забезпечення для Інтернету - такі речі, як механізми тривимірної графіки, обробка зображень тощо.
Як результат, одним із ранніх випадків практичного використання WebAssembly є розробники ігор, які прагнуть створювати ігри високого класу, які працюють у браузері. Epic Games продемонструвала версію Unreal Engine, яка працює в браузері як модуль wasm.
WebAssembly також призначений для інтеграції з існуючими механізмами JavaScript, що означає, що модулі двох платформ повинні бути сумісними. Модулі Wasm можна імпортувати до коду JavaScript, який потім може скористатися його функціональними можливостями. Наразі WebAssembly не може отримати безпосередній доступ до DOM або веб-API, але для цього може використовувати JavaScript.
Крім того, WebAssembly не обмежує запуск лише в браузері, і, як очікується, він буде перенесений на інші платформи. Це може значно спростити створення крос-платформних програм, що підтримують веб-середовище та власні середовища.
Значення безпеки
Можливо, вам цікаво про наслідки безпеки для WebAssembly, оскільки це загальне занепокоєння для мов низького рівня. Однак, замість того, щоб бути справжнім власним машинним кодом, wasm призначений для виконання в середовищі з ізольованою середовищем і дотримується тих самих обмежень безпеки, що і JavaScript у браузері.
Якщо ви хочете розпочати роботу з WebAssembly, Emscripten - це компілятор, який підтримує компіляцію та перетворення існуючих додатків на C і C ++. Ви поки що не знайдете занадто багато виробничих додатків, але це ще один крок до подолання розриву між браузером та власним програмним забезпеченням. Це, безумовно, один, за яким слід стежити, і якщо ви не будуєте модулі wasm, ви цілком можете їх споживати найближчим часом.
Створення сайту з командою? Бережіть свої дизайнерські файли та примітки в безпеці у спільному хмарному сховищі.
Подія веб-дизайну Генеруйте Лондон повертається 19-21 вересня 2018 року, пропонуючи насичений графік провідних спікерів, цілий день семінарів та цінні можливості для спілкування - не пропустіть. Отримайте свій квиток Generate зараз.