Повече от две десетилетия JavaScript беше единственият език за програмиране, който можеше да работи в браузъри. Други езици като Python, C++ и Go бяха основно за изграждане на сървърната страна на уеб приложения и услуги.
JavaScript се справи доста добре, но много други езици за програмиране са по-бързи. Има много предимства, от които уеб приложенията могат да се възползват, като изпълняват други, по-производителни езици за програмиране директно в браузъра.
WebAssembly предлага ефективна, отворена и безопасна опция, която е част от отворената уеб платформа. Можете да го използвате за създаване на приложения, които работят в браузъри, сървъри и в други среди.
Представяме ви WebAssembly
WebAssembly (WASM) е ефективен, преносим стандартизиран от W3C език на ниско ниво. Той дефинира кодов формат и интерфейси за взаимодействие на програми с платформи в мрежата.
Можете да компилирате повечето езици за програмиране във формата на двоичен код на WebAssembly. Браузърите могат да интерпретират и изпълняват получения WASM код точно както правят с обикновен JavaScript. Можете също да стартирате WebAssembly заедно с JavaScript код за по-висока производителност на приложението и оперативна съвместимост между двете.
WebAssembly стана стандарт на W3C през 2019 г. с поддръжка на много езици за програмиране. Според Направено с WebAssembly, вече има много популярни проекти, които използват WebAssembly, за да доставят бърз и сигурен софтуер на своите потребители.
Много езици за програмиране, включително тези, които са специфични за сървъра, поддържат WebAssembly. Те включват Rust, Go, Python, C++, TypeScript, Java, PHP и Ruby. Разгледайте awesome-wasm-langs ресурс за да научите за поддържаните от WebAssembly езици и пакетите, които можете да използвате с тях.
Ето един пример Програма WebAssembly от Tutorials Point който връща максимум две цели числа:
Синтаксисът на WebAssembly е относително подробен в сравнение с JavaScript, но това не би трябвало да е проблем. Няма да е необходимо да изучавате синтаксиса, тъй като WebAssembly ще бъде целта за компилиране на програмите, които пишете на предпочитания от вас език.
Как работи WebAssembly
WASM съществува като цел за компилация, в която да се транспилират други езици за програмиране. Можете да пишете любимия ви език за програмиране и компилирайте изходния код в WASM байт код, който се изпълнява на клиента. Превеждането му в собствен машинен код означава, че може да работи с висока скорост, обикновено по-бързо от JavaScript.
Една от критичните характеристики на WASM е оперативната съвместимост на JavaScript. Можете да импортирате WASM модули в уеб приложение и да изложите WASM функциите за използване в JavaScript код. JavaScript рамките могат да се възползват от WASM за по-висока производителност.
WASM използва модел на изпълнение в пясъчна среда, подобен на JavaScript. WASM взаимодейства с хост машината, използвайки ABI (двоичен интерфейс на приложението), като Системен интерфейс WebAssembly който осигурява достъп до ресурси и други системни услуги въз основа на изискванията на програмата.
Много съвременни браузъри поддържат WASM, включително Chrome, Microsoft Edge, Mozilla Firefox, Opera и Safari. Езици като Go и Rust поддържа WASM извън кутията.
Защо мрежата има нужда от WebAssembly
JavaScript има ограничена функционалност по дизайн. Не е един от най-бързите или най-производителните езици тъй като започна като скриптов език за мрежата. Въпреки че има много времена за изпълнение, където JavaScript работи с различна скорост, има по-бързи и повече ефективни езици, които WebAssembly може да предостави в мрежата за случаи на употреба като игри, видеоклипове и музика.
WebAssembly също предлага повече преносимост и гъвкавост към езици, които не работят в мрежата. Въвеждането на повече езици в мрежата (най-популярната платформа с отворен код) трябва да доведе до цялостно подобрено преживяване.
Приемането на WebAssembly се развива бързо
Много компании и разработчици създават приложения с WebAssembly. Google, Dropbox и Cloudflare активно използват WebAssembly в някои от своите приложения.
WebAssembly е популярен сред разработчиците на Python, C++ и Rust. Разработчиците на Python обикновено използват Pyoidide и PyScript, разработчиците на C++ и Emscripten, а разработчиците на Rust с Percy, Yew, Sycamore, MoonZoon и рамката Seed.