Если вы достаточно долго скрываетесь в кругах разработчиков, вы, вероятно, слышали слухи о WebAssembly (или Wasm, потому что разработчики любят аббревиатуры, как я люблю кофе).
Когда-то его называли «следующей большой вещью», новым блестящим инструментом, который обещал превратить ваш браузер из скромного средства просмотра документов в полноценного супергероя. Ну, WebAssembly существует уже несколько лет, и знаете что? Он все еще здесь, выполняя это обещание. JavaScript не отошел в сторону, но Wasm незаметно выполнял тяжелую работу в фоновом режиме и стал надежным партнером в игре по веб-производительности.
Представьте себе: JavaScript и C выходят выпить, ведут глубокий разговор о скорости и эффективности, и бац — рождается WebAssembly?. Wasm — это низкоуровневый язык, похожий на ассемблер, который вы можете запускать в своем браузере. Он предназначен для того, чтобы сделать веб-приложения более быстрыми, эффективными и способными запускать такие вещи, о которых вы никогда не думали, что браузер сможет справиться. Думайте об этом как о вашем браузере, у которого под толстовкой находится упаковка из шести штук, готовая поднять гораздо больше, чем может выдержать JavaScript.
На простом английском языке? WebAssembly — это формат скомпилированного кода, который может выполняться почти так же быстро, как собственный машинный код, и предназначен для работы вместе с JavaScript, а не для его замены. Так что нет, вам пока не обязательно выбрасывать все свои с трудом заработанные навыки JS в мусорное ведро.
Сеть отлично подходит для демонстрации кошачьих мемов и бесконечной прокрутки в Твиттере, но исторически она плохо справлялась с чем-то слишком интенсивным — например, с 3D-играми, редактированием видео или симуляциями в реальном времени. Вот тут-то и вступает Васм, выглядящий энергичным и устрашающим, как супергерой, готовый спасти ваш код из лап неэффективности?.
Вот что предлагает WebAssembly:
Во-первых, вам не обязательно отказываться от JavaScript. Васм хорошо с этим играет? Думайте о Wasm как о мощном приятеле JavaScript, который помогает с тяжелой работой, когда JS устает после выполнения нескольких циклов.
На самом деле, WebAssembly действительно может сделать ваш JS-код лучше. Если у вас есть задачи, требующие высокой производительности (например, сложные вычисления, анализ файлов или рендеринг видео), вы можете передать их Wasm и позволить ему выполнять тяжелую работу, пока JS сосредоточится на своей обычной магии манипулирования DOM.
Отношения между JavaScript и WebAssembly подобны команде супергероев, в которой умный (JS) и сильный (Wasm) работают вместе, чтобы спасти положение. Ни один из них не заменяется — им просто лучше вместе. Как арахисовое масло и желе. Или табуляции и пробелы (шучу, не начинайте пламенную войну).
Шаг 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 сделает JavaScript устаревшим или что ваш браузер начнет самопроизвольно сгорать из-за возможности запуска почти нативного кода. Но… может быть?
На самом деле, будущее WebAssembly — это скорее дополнение существующей веб-экосистемы, чем замена чего-либо. Это инструмент. Да, мощный, но он здесь только для того, чтобы помочь, а не свергнуть монархию JavaScript. И хотя до того, как Wasm станет мейнстримом во всей сети, вероятно, осталось еще несколько лет, он уже набирает обороты в играх, мультимедийных приложениях и даже в блокчейне. Да, блокчейн. Потому что, судя по всему, Васм никуда не пойдет.
Если бы WebAssembly был человеком, то это был бы тот друг, который появляется без предупреждения, помогает передвинуть тяжелую мебель и уходит, не попросив пиццы. Он здесь, чтобы делать грязную работу: тяжелые вычисления, оптимизацию производительности и превращение браузера в мощный компьютер, способный на гораздо больше, чем мы когда-либо могли себе представить.
Итак, если вы хотите расширить границы возможностей вашего веб-приложения или просто хотите, чтобы ваш браузер чувствовал себя так, будто он прошел супергеройскую подготовку, WebAssembly вас поддержит ?. Просто помните: с большой мощью приходит и отличное время компиляции?.
Привет, я programORdie, это моя первая настоящая статья, и мне бы хотелось получить ваши отзывы, поэтому не стесняйтесь оставлять комментарии!
Вы также можете ознакомиться с моими проектами или обратиться на GitHub: programORdie2.
Надеюсь, вам понравилась статья, хорошего дня!?
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3