«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > WebAssembly: суперспособность, о которой вы даже не подозревали

WebAssembly: суперспособность, о которой вы даже не подозревали

Опубликовано 8 ноября 2024 г.
Просматривать:393

WebAssembly: The Superpower You Didn’t Know You Needed

Если вы достаточно долго скрываетесь в кругах разработчиков, вы, вероятно, слышали слухи о WebAssembly (или Wasm, потому что разработчики любят аббревиатуры, как я люблю кофе).

Когда-то его называли «следующей большой вещью», новым блестящим инструментом, который обещал превратить ваш браузер из скромного средства просмотра документов в полноценного супергероя. Ну, WebAssembly существует уже несколько лет, и знаете что? Он все еще здесь, выполняя это обещание. JavaScript не отошел в сторону, но Wasm незаметно выполнял тяжелую работу в фоновом режиме и стал надежным партнером в игре по веб-производительности.

Итак, что же такое WebAssembly?

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

На простом английском языке? WebAssembly — это формат скомпилированного кода, который может выполняться почти так же быстро, как собственный машинный код, и предназначен для работы вместе с JavaScript, а не для его замены. Так что нет, вам пока не обязательно выбрасывать все свои с трудом заработанные навыки JS в мусорное ведро.

Почему вас это должно волновать? (Или: Почему нас это волнует?)

Сеть отлично подходит для демонстрации кошачьих мемов и бесконечной прокрутки в Твиттере, но исторически она плохо справлялась с чем-то слишком интенсивным — например, с 3D-играми, редактированием видео или симуляциями в реальном времени. Вот тут-то и вступает Васм, выглядящий энергичным и устрашающим, как супергерой, готовый спасти ваш код из лап неэффективности?.

Вот что предлагает WebAssembly:

  • Скорость: Васм работает действительно быстро. Мол, быстро «сокращает время загрузки на секунды». Типа: «Внезапно тебе становится плохо из-за того, что у тебя все время были проблемы с JavaScript».
  • Гибкость языка: вам больше не нужно ограничивать себя JavaScript. Вы можете писать код на C, C, Rust и других языках. WebAssembly это не волнует — он превратит все это в молниеносную производительность в браузере. Это Швейцария языков программирования: нейтральная, но тайно мощная.
  • Супервозможности браузеров: Хотите запускать 3D-игры, программное обеспечение САПР или модели машинного обучения прямо в браузере, чтобы компьютер не плакал в фоновом режиме? Васм делает это возможным. Ваш браузер становится не «текстовым процессором», а скорее «костюмом Железного человека».

«Но я веб-разработчик, и JavaScript — мой выбор!»

Во-первых, вам не обязательно отказываться от JavaScript. Васм хорошо с этим играет? Думайте о Wasm как о мощном приятеле JavaScript, который помогает с тяжелой работой, когда JS устает после выполнения нескольких циклов.

На самом деле, WebAssembly действительно может сделать ваш JS-код лучше. Если у вас есть задачи, требующие высокой производительности (например, сложные вычисления, анализ файлов или рендеринг видео), вы можете передать их Wasm и позволить ему выполнять тяжелую работу, пока JS сосредоточится на своей обычной магии манипулирования DOM.

Отношения между JavaScript и WebAssembly подобны команде супергероев, в которой умный (JS) и сильный (Wasm) работают вместе, чтобы спасти положение. Ни один из них не заменяется — им просто лучше вместе. Как арахисовое масло и желе. Или табуляции и пробелы (шучу, не начинайте пламенную войну).

«Хорошо, хорошо… Но как мне начать использовать WebAssembly?»

Шаг 1: Дышите. Wasm может показаться устрашающим, но его не так уж сложно использовать, особенно если вы когда-либо писали на компилируемом языке, таком как C, C или Rust. Если нет? Что ж, поздравляю! WebAssembly — отличный повод наконец выучить тот устрашающий язык, которого вы избегали.

Шаг 2: Получите компилятор, который может генерировать Wasm. Существует множество инструментов, которые возьмут ваш код (на C, C, Rust и т. д.) и скомпилируют его в Wasm. Emscripten — популярный выбор для проектов C/C, а wasm-pack отлично подходит для проектов Rust.

Шаг 3: Загрузите его в браузер. После того как вы скомпилировали свой код в WebAssembly, вы можете загрузить его в браузер и начать использовать этот приятный, приятный прирост производительности. Однако Wasm не привлекает к себе всеобщее внимание — он предназначен для работы в гармонии с JavaScript. Ваш код JavaScript будет вызывать функции WebAssembly, как будто они просто часть команды. Никакой драмы.

Шаг 4: Прибыль. Или, по крайней мере, расслабьтесь и наслаждайтесь просмотром того, как ваше веб-приложение преодолевает узкие места в производительности, как будто у него есть кнопка закиси азота.

Захватит ли WebAssembly мир?

Послушайте, мы не говорим, что WebAssembly сделает JavaScript устаревшим или что ваш браузер начнет самопроизвольно сгорать из-за возможности запуска почти нативного кода. Но… может быть?

На самом деле, будущее WebAssembly — это скорее дополнение существующей веб-экосистемы, чем замена чего-либо. Это инструмент. Да, мощный, но он здесь только для того, чтобы помочь, а не свергнуть монархию JavaScript. И хотя до того, как Wasm станет мейнстримом во всей сети, вероятно, осталось еще несколько лет, он уже набирает обороты в играх, мультимедийных приложениях и даже в блокчейне. Да, блокчейн. Потому что, судя по всему, Васм никуда не пойдет.

Заключительные мысли: Wasm – это то, что нужно

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

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

Обо мне

Привет, я programORdie, это моя первая настоящая статья, и мне бы хотелось получить ваши отзывы, поэтому не стесняйтесь оставлять комментарии!
Вы также можете ознакомиться с моими проектами или обратиться на GitHub: programORdie2.

Надеюсь, вам понравилась статья, хорошего дня!?

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/programordie/webassembly-the-superpower-you-didnt-know-you-needed-c9o?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить это
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3