Разработчики WebAssembly предлагают новый архитектурный подход, который может заметно упростить использование технологии в браузере. Речь идет о WebAssembly Component Model - инициативе, которая должна сделать Wasm более удобным для разработчиков и лучше интегрированным с веб-платформой.
Сегодня WebAssembly широко используется как высокопроизводительный формат выполнения кода в браузере и как целевая платформа компиляции для разных языков программирования. Но, несмотря на преимущества, технология по-прежнему сталкивается с рядом ограничений, из-за которых разработчики часто предпочитают обычный JavaScript.
Почему WebAssembly до сих пор используют не так часто
WebAssembly появился в 2017 году как бинарный формат, который позволяет запускать код практически на нативной скорости прямо в браузере. Он особенно полезен для ресурсоемких задач: например, графики, игр или обработки данных.
Однако на практике у технологии есть проблема: она слабо интегрирована с веб-платформой.
По словам инженера Mozilla Райана Ханта, WebAssembly сегодня фактически остается языком второго класса для веба. Даже несмотря на появление новых возможностей, таких как общая память, обработка исключений и оптимизации памяти, разработчикам часто проще использовать JavaScript.
Причины довольно прагматичные:
JavaScript проще загружать и подключать
у него прямой доступ к Web API
разработчику не нужно строить сложную инфраструктуру вокруг кода
В итоге WebAssembly чаще используют крупные компании, которые могут позволить себе дополнительные инженерные затраты.
Что предлагает модель компонентов
Чтобы решить проблему интеграции, сообщество WebAssembly работает над Component Model: новой архитектурой для построения приложений и библиотек на базе Wasm.
Главная идея это создать стандартную систему компонентов, которые можно легко подключать друг к другу независимо от языка программирования.
Предложение включает несколько ключевых возможностей:
стандартный формат исполняемого компонента;
поддержку разных языков и компиляторов;
механизмы загрузки и связывания модулей WebAssembly;
удобное использование Web API.
Компонент в этой модели описывает высокоуровневый API, который внутри реализуется набором низкоуровневых Wasm-модулей. Это делает архитектуру более модульной и удобной для повторного использования.
Совместная работа крупных компаний
Разработкой Component Model занимается WebAssembly Community Group при участии нескольких крупных компаний и организаций.
Mozilla активно участвует в проектировании архитектуры, а Google сейчас оценивает предложенную модель и ее потенциальное влияние на экосистему.
Работа над спецификацией ведется с 2021 года. Разработчики считают, что именно этот шаг может сделать WebAssembly полноценной частью веб-платформы.
Что это может изменить для разработчиков
Если модель компонентов станет стандартом, WebAssembly сможет гораздо лучше вписаться в веб-экосистему.
Потенциальные преимущества:
упрощение разработки библиотек на Wasm;
возможность комбинировать код из разных языков;
более удобная интеграция с браузерными API;
снижение сложности сборки и запуска приложений.
Это может заметно расширить аудиторию технологии. Сейчас многие разработчики используют WebAssembly только тогда, когда производительность критически важна. Новая архитектура может сделать его более универсальным инструментом.
Источник: InfoWorld