WebAssembly
WebAssembly (сокращенно Wasm) — это портируемый формат двоичных инструкций, в который можно скомпилировать высокоуровневые языки: С, С++, Rust и другие. Это позволяет разворачивать в браузере клиентские и серверные приложения. Формат представляет собой низкоуровневый байт-код, который можно выполнять в виртуальной машине, которая, как правило, интегрирована в браузер. Хотя изначально WebAssembly разрабатывалась для веб-приложений, сейчас она является универсальной средой исполнения и может выполнять и другие приложения, например, программы для IoT и периферийных устройств.
Какую проблему решает
Долгие годы веб-приложения разрабатывались на основе стека LAMP (Linux Apache MySQL PHP). Позже царем фронтэнд-разработки стал Javascript, и общепринятыми стали приложения, написанные на NodeJS. С развитием веб-технологий много внимания получили интерпретируемые языки; обычно они менее производительны, чем компилируемые, даже если технологически являются более продвинутыми. Хотя JavaScript развился с годами, он все еще ограничен по производительности на задачах, требующих интенсивных вычислений. Интерпретируемые языки часто испытывают проблемы с производительностью и функциональностью, когда код исполняется в разных средах, поскольку он компилируется под эти среды во время выполнения. Корректно скомпилированные бинарные файлы, напротив, работают во всех средах одинаково. В то же время считается, что скомпилированные бинарные файлы меньше подходят для веб-среды.
Как именно решает проблему
WebAssembly предоставляет разработчикам низкоуровневый двоичный формат, который исполняется с производительностью, близкой к нативной. Благодаря этому веб-приложения могут эффективно справляться со сложными вычислениями. WebAssembly позволяет разработчикам создавать веб-приложения, используя знания языков C, C++, Rust и других, которые у них имеются, и благодаря этому переиспользовать существующие кодовые базы и библиотеки. Помимо этого, модули WebAssembly запускаются единообразно в разных браузерах, операционных системах и устройствах, а это снижает необходимость специфичном для этих платформ коде. Подводя итог, WebAssembly решает проблемы с производительностью и ограничениями языков программирования, переносимостью кода между средами, безопасностью, объемом кода и временем его загрузки и предоставляет более простую и гибкую среду для разработки веб-приложений.
Обратная связь
Полезна ли эта страница?
Thank you! Please let us know if you have any suggestions.
Thanks for your feedback. Please tell us how we can improve.