Статьи

Совет: попробуйте WebAssembly в вашем браузере сегодня

В июне 2015 года изобретатель JavaScript и соучредитель Mozilla Брендан Эйх (Brendan Eich) объявил о чем-то очень интересном для Интернета: WebAssembly.

Эйх объясняет, что JavaScript был назван языком ассемблера в Интернете , с чем он не согласен и продолжает представлять WebAssembly, « новое промежуточное представление для безопасного кода в Интернете », как он его описывает. Google, Microsoft, Mozilla, Apple и некоторые другие люди экспериментировали с ним до объявления Eich.

WebAssembly, для краткости «wasm», суффикс имени файла .wasm, — это новый стандарт, целью которого является определение безопасной, переносимой, эффективной по размеру и времени загрузки двоичного компилятора, которая обеспечивает практически естественную производительность — виртуальный ЦП для Интернета. ,

Зачем нужна WebAssembly? Что ж, asm.js требует, чтобы движки оптимизировались под него, что делает анализатор горячей точкой (буквально — мобильные устройства могут сильно нагреваться). Это связано с необходимостью сжатия транспорта, которое также экономит полосу пропускания, но распаковка его перед анализом может быть болезненной. Кроме того, если браузеры изначально поддерживают формат WebAssembly, JavaScript и wasm могут расходиться, не вводя небезопасные или неуместные функции в JavaScript только для использования компиляторами, использующими несколько радикально различных языков программирования.

Auth0 довольно хорошо объясняет WebAssembly в этом посте , если вам нужен лучший обзор.

WebAssembly — год спустя

WebAssembly разработан с учетом нескольких вариантов использования как внутри, так и вне браузера. Как вы можете догадаться, wasm можно использовать для редактирования изображений / видео, игр AAA в браузере, живого дополнения, виртуальной реальности и многого другого. Практически все, что уже возможно в Интернете, но с потенциалом быть быстрее и эффективнее. Но WebAssembly также может быть полезна вне браузера: приложения на стороне сервера, гибридные нативные приложения, вычисления на стороне сервера ненадежного кода — это лишь некоторые из потенциальных приложений.

Дорожная карта также идет хорошо. За последний год группа сообщества WebAssembly достигла большого прогресса, создав:

  • Описание и обоснование начального набора функций и запланированных будущих функций;
  • Спецификация и справочный интерпретатор;
  • 13 000 строк тестов, используемых для проверки как интерпретатора спецификации, так и браузеров;
  • Первый проект двоичного формата.

С такими захватывающими обещаниями поставщики браузеров спешат предложить ранние реализации WebAssembly в своих браузерных движках. Теперь можно создавать демоверсии WebAssembly, которые работают на нескольких экспериментальных реализациях.

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

Однако это большой шаг вперед, поскольку все браузеры переходят на одну и ту же страницу, что замечательно, если вспомнить, что Internet Explorer делал в прошлом.

Прочитайте статью Mozilla Hacks WebAssembly для получения дополнительной информации.

WebAssembly Демо

Давайте попробуем демо-версию WebAssembly через Firefox Nightly (она также должна работать на Chrome Canary). Убедитесь, что у вас установлена ​​последняя версия Nightly , откройте about:configjavascript.options.wasmtrue

Снимок экрана игры Angry Bots

Посмотрите экспериментальную демоверсию Angry Bots , игры для Unity, которая была портирована на WebAssembly. Вы можете сражаться с роботами и исследовать 3D космическую станцию ​​в этом шутере сверху вниз. Движение управляется W, A, S, D или клавишами со стрелками, а прицеливание и стрельба — мышью.

Далее

Перед выпуском первой стабильной версии у WebAssembly еще много важных задач:

  • Официальный текстовый формат WebAssembly должен быть определен.
  • Далее уменьшите размер двоичного формата.
  • Перейдите к JavaScript-интерфейсу WebAssembly.
  • Более доступная документация для авторов компиляторов, авторов инструментов, хакеров и студентов.
  • Дополнительные тесты добавлены в набор тестов.

Веб, Собери!

Если вы хотите принять участие, вы можете присоединиться к группе сообщества на W3C. Фактическая спецификация WebAssembly разрабатывается в репозитории спецификаций на GitHub. Группа предлагает, чтобы обсуждения проекта высокого уровня продолжали проводиться в хранилище проекта , через проблемы и запросы извлечения. Перед тем, как погрузиться, обязательно ознакомьтесь с Кодексом этики и профессионального поведения .

Взволнован еще? Что вы думаете о последних новостях о WebAssembly?