WebAssembly — это новый тип кода, который можно запускать в современных веб-браузерах. Вместе с low-code он может изменить то, как разработчики программного обеспечения создают приложения для Интернета.

Доминирование JavaScript

Согласно статье на Medium, по состоянию на 2019 год в мире насчитывалось более 1,6 млрд сайтов. А JavaScript — доминирующий язык программирования, которым пользуются 95% из них. Это не большой сюрприз. В конце концов, JavaScript — единственный язык программирования, который поддерживается всеми браузерами. Или это?

Благодаря WebAssembly это изменилось.

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

Консорциум World Wide Web (W3C) разработал и развивает WebAssembly. Впервые об этом было объявлено еще в 2015 году, а первая демонстрация состоялась два года спустя, в 2017 году.

Некоторые думают, что WebAssembly или Wasm — это новый язык программирования. Но это не совсем так. Это тип кода, но не тот, который программисты должны писать от руки. Вместо этого WebAssembly является целью компиляции для часто используемых языков программирования, таких как Python, C, C++ или Rust. Выступая в качестве цели компиляции, эти языки затем можно запускать в браузере, разрушая доминирование JavaScript в Интернете. Это также помогает преодолеть проблемы с производительностью JavaScript, делая языки программирования, которые традиционно использовались для создания крупномасштабных критически важных корпоративных систем, таких как C++, доступными в браузере.

Как это работает?

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

  1. Исходный код (например, Python, C++ или Rust): у вас есть приложение, написанное на совместимом языке, которое вы хотите выполнить в браузере.
  2. Байт-код WebAssembly. В качестве цели компиляции вы выбираете байт-код WebAssembly. В результате вы получите файл .wasm.
  3. Машинный код (код операции): браузер загружает файл .wasm и компилирует его в соответствующий машинный код своей хост-системы.

Если вы хотите узнать, как создать свое первое приложение с помощью Wasm, мы рекомендуем Статья OpenSource.Com Как написать «Hello World в WebAssembly». Для более подробного объяснения того, как работает процесс компиляции, ознакомьтесь с этим отличным выпуском подкаста на Software Engineering Daily.

Думаю, я понял. Но можете ли вы привести несколько примеров?

Если все это звучит слишком абстрактно, не волнуйтесь! Велика вероятность, что вы уже используете веб-приложение на основе WebAssembly.

Два замечательных примера — Figma, популярное онлайн-приложение для создания сложных макетов, и Google Earth, сервис 3D-карт Google.

В сообщении в блоге от 2017 года технический директор Figma написал:

«Поскольку приложения, скомпилированные в WebAssembly, могут работать так же быстро, как и нативные приложения, это может изменить способ написания программного обеспечения в Интернете». — Эван Уоллес, технический директор Figma.

Затем он продолжает объяснять, что Figma написана на C++, который является одним из языков, которые можно скомпилировать в код WebAssembly. Сделав это, Figma смогла ускорить время загрузки в 3 раза, достигнув почти родной производительности.

С другой стороны, Google Планета Земля раньше была приложением только для Chrome. Вплоть до 2019 года к Google Планета Земля нельзя было получить доступ из любого другого браузера, поскольку он использовал Native Client (NaCl), решение только для Chrome. Затем команда инженеров Google Планета Земля приняла WebAssembly. Поскольку все браузеры поддерживают WebAssembly, его внедрение обеспечило доступ к Google Планета Земля любому, независимо от используемого браузера.

В обоих случаях WebAssembly был правильным решением для сложной инженерной (и деловой) проблемы: как перенести большие приложения в Интернет, не жертвуя производительностью и не переписывая все приложение с нуля? Figma и Google Earth — два отличных примера вариантов использования, для которых разработан WebAssembly.

WebAssembly и низкий код

Как все это относится к разработке программного обеспечения с низким кодом? Обе технологии потенциально преобразующие.

WebAssembly может изменить будущее веб-разработки и расширить типы приложений, созданных для Интернета. По словам ИТ-консультанта Forrester, low-code, с другой стороны, может изменить то, как разработчики создают программное обеспечение, ускорив доставку пользовательских веб-приложений до 10 раз. Это новый способ быстрой разработки и развертывания пользовательских веб-приложений.

В Five мы создаем независимую от языка среду разработки в браузере, которая поддерживает Wasm. В будущем разработчики программного обеспечения смогут писать код не только на JavaScript или TypeScript, но и практически на любом языке прямо внутри Five. Затем этот код компилируется в Wasm и может использоваться для разработки и развертывания независимых от устройств веб-приложений. Внутри Five мы объединяем мощь WebAssembly с низким кодом на одной платформе.

Хотите попробовать? Подпишитесь на бесплатную загрузку нашей среды разработки через наш сайт!

TL; Аварийное восстановление: WebAssembly и Low-Code

WebAssembly (или Wasm) — это цель компиляции для многих популярных языков программирования, таких как Python, Go, C#, C, Rust и C++. Все основные браузеры (Firefox, Chrome, Safari и Edge) поддерживают Wasm. Двумя популярными приложениями, использующими Wasm, являются Figma и Google Earth.

Скомпилировав код в Wasm, разработчики могут создавать и запускать высокопроизводительные веб-приложения практически на любом языке программирования. Five, среда разработки с низким кодом, сочетает в себе две большие тенденции в веб-разработке, Wasm и разработку с низким кодом, позволяя разработчикам программного обеспечения использовать полный код практически в любом месте интегрированной среды разработки Five (IDE).

Первоначально опубликовано на https://five.co 13 октября 2022 г.