eFusion 14 января 2021

🕸 Что не так с веб-сборкой?

Ее потенциал и перспективы огромны. Что же пошло не так? Почему не все используют WASM? Попробуем ответить на эти вопросы.
🕸 Что не так с веб-сборкой?

Перевод публикуется с сокращениями, автор оригинальной статьи Fernando Doglio.

Современные браузеры способны на гораздо большее, чем просто визуализировать веб-страницы. В попытке вывести выполнение тяжелых задач на новый уровень был создан мост между JavaScript и машинным кодом – это одна из причин, по которой появился WebAssembly.

Теоретически, эта новая технология позволит любому создавать машинный код для запуска в виртуальной и безопасной песочнице браузера. WASM (аббревиатура WebAssembly) позволяет серверному коду (например, на C или C++) компилироваться и выполняться внутри браузера.

Какой смысл в WASM?

WASM обеспечивает высокооптимизированные вычисления в вебе, а также возможность сломать монополию, которую в настоящее время удерживает JS в этой среде. Хотя JavaScript – отличный язык, он не был разработан для создания высокопроизводительных приложений. И если позволить другим языкам применяться вместе с JS, можно получить двойную выгоду.

Варианты использования

🕸 Что не так с веб-сборкой?

WASM предназначался для использования в браузерах и серверных средах, вроде Node.js в следующих направлениях:

  • редактирование видео;
  • геймдэв;
  • AR/VR приложения;
  • редактирование и стриминг музыки;
  • эмуляция;
  • шифрование;
  • VPN, распознавание изображений и т. д.

Кто и для чего его использует?

Чтобы изучить список использующих WASM открытых проектов, вы можете посетить сайт сообщества. Приведем некоторые их них:

  • Unity. Этот игровой движок способен экспортировать проекты для веб-совместимости, а с 2018 года этот процесс осуществляется путем компиляции в WebAssembly. Теперь разработчикам игр не нужно беспокоиться о том, чтобы писать для веба, а только о создании игрового кода – об остальном позаботится WASM.
  • Tensorflow.js. Одна из основных библиотек, которая принесла AI и ML разработчикам JS, добавила поддержку WASM-backend, и с тех пор ее создатели работают над реализацией все большего количества моделей. В чем выгода? Авторы увидели примерно десятикратное улучшение производительности своих моделей по сравнению с чистым JS.
  • Web-AutoCAD. Софт был частично портирован с использованием старого кода на основе C++, скомпилированного в WASM. Это важный шаг в демонстрации мощи и потенциала WASM, когда речь заходит о повторном использовании кода, написанного для совершенно другой платформы, на несовместимом с браузером языке.
  • Google Earth. Этот продукт существует более 15 лет и раньше был доступен только для настольных машин. Благодаря WASM часть старого кода скомпилировали и перенесли в веб.
  • Blazor. Особенностью фреймворка ASP.NET является возможность создавать интерактивные UI, работающие непосредственно в браузере. Благодаря магии веб-сборки и кода .NET, вы получаете в веб-интерфейсе все преимущества написанной на C# серверной части.
  • Yew. Теперь, благодаря Yew вы можете использовать Rust для веб-приложений, а также использовать Rust для UI и многопоточную среду для работы. Этот проект еще не готов к продакшену, но если вы поклонник Rust и хотите помочь, сообщество будет только за.

В списке есть еще более 100 проектов, но вышеописанные имена, тем более с корнями в Microsoft, Unity и Google – признак высокого потенциала технологии.

🕸 Что не так с веб-сборкой?

Почему технология не стала популярной?

Ответ: плохой маркетинг.

Если рассмотреть разнообразие различных проектов, которые не смогли добиться успеха, становится ясно, что причина в отсутствии необходимой связи с целевой аудиторией. Нечто подобное происходит и с WASM. Знают ли об этом разработчики?

Ключевая проблема – WASM не предназначен для веб-разработчиков, он предназначен для всех, кто хочет перейти в веб. Веб-разработчикам не нужен WASM, они успешно используют JS. Учитывая, сколько необходимо приложить усилий для создания «Hello world» в WASM, становится ясно, почему программисты не смотрят в его сторону.

Бытует обоснованное мнение: если приложение включает в себя интенсивные вычисления, оно должно быть нативным. Это относится к геймдэву, VR/AR, виртуальным машинам и к большинству предполагаемых вариантов использования WASM. Как мы все знаем, попытка нарушить устои требует больших усилий, и как результат – компании не заинтересованы в этом.

Заключение

WASM предстоит пройти долгий путь, прежде чем его можно будет легко использовать в веб-проектах, не говоря уже о том, чтобы он стал единственным поставщиком логики для приложений. Следует помнить, что WASM не предназначен непосредственно для веб-разработки – он скорее нужен, чтобы писать на C, Go или другом языке работающую в браузере логику. WASM не заменит JavaScript, а будет продолжать наращивать аудиторию благодаря тенденции перехода вычислений в облака.

WebAssembly успешно преодолевает разрыв между вебом и любой платформой, которая в него интегрируется. Впереди еще много работы, но преимущества уже видны, и тот факт, что 4 основных браузера уже поддерживают данный инструмент, это подтверждает.

Превратится ли WASM в основную технологию веб-разработки, станет ли он массивной платформой, и будет ли использоваться в качестве стандарта для большинства языков программирования или идея провалится решать нам с вами, разработчикам и крупным компаниям сообща.

Дополнительный материал:

Источники

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ