Веб-сборка

WebAssembly: новая эра веб-разработки

Вы поймете, что такое WebAssembly и как он совершит революцию в веб-индустрии.

Мы все используем браузеры в течение наших дней и нашей жизни. Неважно, какой из них вы используете, это все равно самый простой и лучший способ найти что-то, изучить, взаимодействовать или даже использовать это для определенных задач. Но что, если вы хотите сделать что-то более сложное?

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

Это потому, что у веб-разработчика не так много вариантов выбора между языками программирования, есть только JavaScript для внешнего интерфейса и еще несколько для внутреннего интерфейса, у которого не так много возможностей, таких как создание игры или полностью работающий приложение. При программировании настольного приложения у вас есть куча вариаций, начиная от одного и того же JavaScript и заканчивая C++, который является одним из самых мощных языков во всем мире. Почти каждая программа, которую вы используете ежедневно, написана на C++ или Java, потому что это низкоуровневые языки и имеют гораздо больше возможностей, чем привычные нам JavaScript, Python и т. д.

Решение

Однако есть отличное решение под названием WebAssembly (Wasm), которое помогает вам использовать всю мощь C++ прямо внутри вашего браузера практически без усилий и с нулевой потерей скорости. WebAssembly — это двоичный формат инструкций, который обеспечивает производительность приложений веб-браузера, близкую к естественной, и позволяет разработчикам создавать быстрые веб-приложения на выбранном ими языке (например, C, C++, Rust, JavaScript, C#, Go). Он также имеет еще несколько преимуществ помимо тех, которые мы уже перечислили. И мы поговорим о них прямо сейчас.

Отлаживаемый и доступный

Для задач ручного программирования, таких как отладка, тестирование, экспериментирование, оптимизация, обучение, обучение и создание программ, WebAssembly создан для печати в текстовом формате. При просмотре исходников модулей Wasm онлайн будет использоваться текстовый формат.

Часть открытой веб-платформы

WebAssembly сохраняет неверсионную, функционально протестированную и обратно совместимую природу Интернета. Модули WebAssembly будут иметь доступ к тем же веб-API, что и JavaScript, что позволит им получить доступ к функциям браузера и совершать вызовы в среду JavaScript и из нее. WebAssembly также поддерживает не веб-встраивания.

Ограничения

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

WebAssembly может вызывать только JavaScript и передавать при этом примитивные типы данных целого числа и с плавающей запятой; в настоящее время он не может получить прямой доступ к DOM. В результате, чтобы WebAssembly мог получить доступ к любому веб-API, сначала необходимо связаться с JavaScript, а затем — к веб-API.

Хотя WebAssembly поддерживается на настольных компьютерах и мобильных устройствах, для последних существуют серьезные ограничения, затрудняющие безопасное развертывание многих приложений в мобильных браузерах. На данный момент ни Safari на iOS, ни Chrome на Android не могут надежно выделить более 300 МБ памяти без использования обходных путей, специфичных для Chrome.

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

Стоит ли использовать WebAssembly?

Если эти ограничения вас не смущают и вас вполне устраивают все эти огромные преимущества, то Wasm определенно для вас и для остальных 98% разработчиков и пользователей. Потому что со всеми его замечательными функциями и отличной производительностью вы получаете новую песочницу, в которой вы можете создавать все, что захотите. Начиная с видеоредактора, такого как Premier pro, и заканчивая Triple A Game прямо в вашем браузере. Только представьте, как это круто, вам не нужно ничего скачивать или устанавливать, вы просто заходите в свой браузер и играете прямо в нем без потери скорости или производительности.

Заключение

Вот и все, я попытался объяснить и показать вам новую эру Интернета. WebAssembly — действительно крутая технология, которая упрощает жизнь и разработчикам, и пользователям. Я не рассказал всего, что нужно знать о Wasm; однако, учитывая, насколько свежа и обширна эта область, вы наверняка найдете там что-то интересное и новое. Если вам понравилось. Не забудьте поставить лайк и подписаться на меня, если вам понравилась эта статья. :)

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord. Заинтересованы в Взлом роста? Ознакомьтесь с разделом Схема.