4 разработки в WEBASSEMBLY

Wasm развивается, предлагая поддержку основных языков, варианты развертывания Kubernetes, революционные возможности для моделей компонентов и многое другое.

Перевод из книги «4 больших разработки в WebAssembly» , автор Мэтт Батчер.

Несколько обновлений для WebAssembly (Wasm) были анонсированы на выставках Wasm I/O в Барселоне и KubeCon в Париже . Среди них выявились четыре важные закономерности.

Поддержка языков программирования находится на подъеме

С момента создания Wasm самым большим риском для его успеха было отсутствие поддержки языков программирования. Даже самый лучший кроссплатформенный формат байт-кода не будет успешным, если в него не скомпилируется ни один язык.

Я отслеживаю языковую поддержку в WebAssembly . В частности, я отслеживаю, сколько из 20 лучших языков используют WebAssembly, по данным RedMonk . Python, JavaScript/TypeScript, Ruby, Rust, C/C++ и Zig приняли Wasm, и другие языки уже в пути.

На конференции Wasm I/O Залим Башоров из JetBrains сообщил о быстром прогрессе Kotlin. Помимо того, что Kotlin сам по себе является популярным языком, он представляет собой наиболее дальновидный элемент мира Java. По мере того, как Kotlin приближается к базовой поддержке WebAssembly и поддержке WASI 0.2, я ожидаю, что популярность языка снова возрастет, поскольку он найдет новую целевую аудиторию разработчиков. Мало того, это привлечет к WebAssembly более широкое сообщество Java.

Dart теперь поставляется с целью компиляции WebAssembly. На конференции Wasm I/O Кевин Мур из Google поделился захватывающими разработками в мире Dart и Flutter. Мур не создает впечатления, что Dart выйдет за рамки своих корней в области браузеров и мобильных приложений, но улучшения производительности, которые Wasm привносит в этот мир, великолепны. Мур представил тесты, показывающие, что Wasm может выполняться более чем на 50% быстрее, чем время выполнения на основе JavaScript.

Наконец, команда Go, представленная Радживом Сингхом и Ахиллом Русселем, представила новые достижения в поддержке WebAssembly в Go. Go передал TinyGo часть своей поддержки WebAssembly (руководитель проекта Рон Эванс также присутствовал на Wasm I/O). Но основная команда Go теперь возобновила интерес к поддержке Wasm как внутри, так и вне браузера.

Однако еще одной важной особенностью, поддерживаемой языками программирования, является возможность отладки. Наталья Вендитто и Ральф Сквиллаче из Microsoft демонстрируют отладку Wasm в Visual Studio Code. Независимая от языка отладка Wasm является абсолютной необходимостью для современной разработки программного обеспечения, и Microsoft прилагает все усилия, чтобы воплотить ее в жизнь.

Kubernetes — цель для развертывания WebAssembly.

Wasm I/O и KubeCon обсуждали запуск Wasm в Kubernetes . Fermyon, Microsoft, SUSE, Liquid Reply и другие компании совместно выпустили проект SpinKube с открытым исходным кодом для запуска приложений Wasm Kubernetes в стиле Spin. На KubeCon международная оптическая компания Zeiss Group продемонстрировала практические примеры использования на этапе основного доклада .

SUSE объявила о поддержке WebAssembly в Rancher Desktop с использованием среды выполнения K3s Kubernetes. Fermyon анонсировал коммерчески поддерживаемую платформу Kubernetes Fermyon со сверхвысокой плотностью, которая может запускать 5000 приложений Wasm на узел Kubernetes. Проект wasmCloud Cloud Native Computing Foundation достиг версии 1.0 и поддерживает интеграцию с Kubernetes. NGINX Unit объявила о поддержке запуска приложений Spin на своей платформе приложений .

После основного выступления WebAssembly на KubeCon аналитик EMA Торстен Волк отметил, что Wasm стал самой обсуждаемой темой на конференции.

Какие возможности Wasm так хорошо подходят для Kubernetes ? Холодный старт Wasm делает его отличной платформой для бессерверных функций, подобных лямбда-выражениям. Пользователи Kubernetes уже давно заинтересованы в запуске таких рабочих нагрузок в кластерах, но первая волна бессерверных решений Kubernetes не могла сравниться с Wasm по плотности, производительности и скорости запуска.

Модели компонентов становятся реальностью

В модели компонентов WebAssembly имеется восемь сеансов . Компонентная модель WebAssembly была представлена ​​на выставке Wasm I/O в этом году. Хотя прошлогодняя выставка Wasm I/O в основном представила модель компонентов с теоретической точки зрения, в этом году мы увидели результаты года разработки компонентов.

Мне особенно понравилась серия из трех лекций, где Торстен Ханс из Fermyon объяснял многоязычное программирование с использованием компонентов, Райан Левик объяснял все тонкости компонентов , а Люк Вагнер завершал трилогию на теме асинхронных вызовов между компонентами (незавершенная часть WASI).

Были и другие лекции, посвященные тому, как использовать компоненты для выполнения конкретных задач, на которых выступали Сейо Чанг из InfinyOn, Пьер Дюро из Design Systems , Жан Вальверде из Dilla.io , Тейлор Томас из Cosmonic и другие. В целом теперь ясно, что компонентная модель готова.

Однако наиболее важные разработки, связанные с компонентами, исходили от Оскара Спенсера из F5 и Дэнни Маковея из JAF Labs . Попытки определить реестр компонентов продолжались в течение трех лет, но в конце первого дня ввода-вывода Wasm Маковей и Спенсер запустили WA.dev, первый реестр компонентов Wasm. Справедливо сравнить WA.dev с npm или даже с Docker Hub. Разработчики могут загружать свои компоненты в центральный реестр, что позволяет всем нам легко находить компоненты и управлять ими.

Wasm по-прежнему остается новаторским языком.

Возможно, последнее развитие событий является контртенденцией. Языковая поддержка сближается. Kubernetes и Wasm добиваются прогресса. Спецификация модели компонента Wasm интегрируется в служебные инструменты. Это признаки зрелости и стабильности. Однако Васм не стоит на месте; он продолжает находиться на этапе разведки.

Нет лучшего примера этому, чем проект Wanix , который независимые разработчики Джефф Линдсей и Джулиан Дель Синьор представили на второй день Wasm I/O. Линдси — дальновидный провидец, чьи проекты часто заставляют разработчиков программного обеспечения переосмысливать свои представления о том, как все делается. От изобретения веб-хуков до первых вкладов в создание контейнеров, Линдсей всегда расширял границы. Ваникс не является исключением.

Дель Синьор и Линдси продемонстрировали встроенную в браузер операционную систему, вдохновленную Plan9, которая поддерживает систему, подобную CMS, способную синхронизировать состояние с GitHub. Это отличный пример того, как универсальность, производительность и кроссплатформенность Wasm объединяются, чтобы создать класс инструментов, у которого в настоящее время нет названия.

Аналогичным образом, бывший глава VMware Wasm Labs Дэниел Лопес отправился с аудиторией в увлекательное путешествие, представив различные демоверсии. От запуска Windows 95 в браузере до демонстрации выводов искусственного интеллекта — Лопес указывает на множество интересных применений этой универсальной технологии. В самый юмористический момент Лопес показал, как запустить Docker в Wasm, добавив таким образом несколько уровней виртуализации. Однако суть его речи заключалась в том, что Васма не следует классифицировать.

В последний день выставки Wasm I/O Рон Эванс, создатель TinyGo (помимо прочего), представил платформу с открытым исходным кодом для разработки встроенных систем для Интернета вещей (IoT). Mechanoid работает на базе Wasm и поддерживает разработку встроенных систем с использованием нескольких языков программирования, включая Rust, Go и Zig. Интернет вещей — новая область для WebAssembly. Хотя он уже зарекомендовал себя в развлекательных устройствах , Эванс исследовал его использование в микроконтроллерах, выведя Wasm в категорию микроустройств.

в заключение

Во многих отношениях Wasm показал свою зрелость. Почти все основные языки теперь поддерживают WebAssembly. Kubernetes становится популярной средой для размещения приложений Wasm, а компонентная модель WebAssembly открывает революционные возможности WebAssembly, включая настоящее многоязычное программирование.

Но так же, как Java нашла варианты использования, выходящие за рамки первоначального замысла, мы также видим, что Wasm открывает возможности в таких интересных областях, как Интернет вещей, и новых областях, таких как Wanix. Это хорошее напоминание о том, что зрелость не означает застоя.

Эта статья была впервые опубликована на Yunyunzhongsheng ( https://yylives.cc/ ), приглашаем всех посетить ее.

Я решил отказаться от открытого исходного кода Hongmeng Ван Чэнлу, отец Hongmeng с открытым исходным кодом: Hongmeng с открытым исходным кодом — единственное мероприятие в области промышленного программного обеспечения, посвященное архитектурным инновациям в области базового программного обеспечения в Китае: выпущен OGG 1.0, Huawei предоставляет весь исходный код. Google Reader уничтожен «горой кодового дерьма» Официально выпущена Ubuntu 24.04 LTS Перед официальным выпуском Fedora Linux 40 разработчики Microsoft: производительность Windows 11 «смехотворно плоха», Ма Хуатэн и Чжоу Хунъи пожимают друг другу руки, «устраняя обиды» Известные игровые компании издали новые правила: свадебные подарки сотрудникам не должны превышать 100 000 юаней. Pinduoduo был осужден за недобросовестную конкуренцию. Компенсация в размере 5 миллионов юаней.
{{o.name}}
{{м.имя}}

рекомендация

отmy.oschina.net/u/6919515/blog/11053996