Mozilla, Intel i Red Hat i Fastly jednoczą siły, by WebAssembly było wszędzie

Maciej Olanicki , 13.11.2019 r.
bytecode

Na blogu Mozilli ogłoszono uruchomienie Bytecode Alliance – sojuszu zrzeszającego samą Mozillę, Intela, Red Hata i Fastly w celu opracowania narzędzi pozwalających na rozpowszechnienie WebAssembly, przede wszystkim zaś opracowanie środowisk uruchomieniowych na możliwie jak największą liczbę platform. Wygląda na to, że potencjalny następca Javy jest już gotowy, by podbijać świat również poza środowiskiem przeglądarki internetowej.

Ambitna misja pisania jednego kodu, który później uruchomić będzie można na każdym urządzeniu i oprogramowaniu towarzyszy nam od dekad. Przez lata z mniejszymi lub większymi sukcesami takie zastosowanie miała Java. Nie brakowało jej jednak ograniczeń – uzależnienie od Oracle, konieczność stosowania jednego języka, instalowania środowisk uruchomieniowych, a finalnie memiczne wręcz problemy z bezpieczeństwem. To, co połowicznie udało się Javie, ma być pełnym sukcesem WebAssembly.

WebAssembly to kod binarny, który uruchamiać można już dziś we wszystkich popularnych przeglądarkach. Co ważne, daje on pewną dowolność w doborze języków programowania i jest znacznie szybszy niż panoszący się coraz śmielej także poza przeglądarką JavaScript. W kwietniu pisaliśmy o inicjatywie WebAssembly System Interface, dzięki której także na tym gruncie WebAssembly miałby zastąpić tak Javę, jak i uruchamiany za pomocą frameworków ElectronNode.js język JavaScript.

Teraz przedsięwzięcie to weszło w kolejną fazę, a w zasadzie przerodziło się w sojusz organizacji, które chcą, by Wasm można było bez przeszkód uruchomić wszędzie bez obciążeń cechujących tak Jave, jak i JavaScript. Jak czytamy na blogu deweloperskim Mozilli, współpraca sojuszu będzie się na razie skupiać na trzech aspektach rozwoju WebAssembly. Pierwszym z nich są trzy opracowywane równolegle środowiska uruchomieniowe: najbardziej wszechstronne Wasmtime, wykorzystywane w warunkach, gdzie wymagana jest kompilacja Ahead-Of-Time środowisko Lucet oraz WebAssembly Micro Runtime (WAMR), kierowane na urządzenia o skrajnie ograniczonych zasobach sprzętowych.

Kolejnym aspektem współpracy Bytecode Alliance będzie opracowywanie komponentów środowisk uruchomieniowych. Aktualnie będzie to generator kodu maszynowego Cranelift (za sprawą pararelizacji kompilacji na poziomie funkcji jego zaletą ma być duża szybkość) oraz WASI common – napisana w Ruście reimplementacja wspomnianego już WebAssembly System Interface. Ostatnim z trzech przedmiotów współpracy sojuszu są narzędziami związane z językami programowania. Tu wymieniane jest cargo-wasi pozwalające na kompilację do Wasm kodu w Ruście oraz parsery: wat oraz wasmparser.

Upowszechnienie WebAssembly ma także zaburzyć nieco dzisiejszy oparty na mikrousługach (nie)ład. W swojego rodzaju manifeście czytamy nawet, że mikrousługi docelowo zastąpione mają być „nanoprocesami”, które będą łatwiejsze do przenoszenia pomiędzy platformami, oferując zarazem zbliżony lub wyższy poziom bezpieczeństwa oraz możliwość pisania kodu w wielu językach. W ostatnim czasie pisaliśmy, że Java nie jest już drugim najpopularniejszym językiem na GitHubie, zastąpił ją Python. Jak widać, także pod względem potencjalnych zastosowań nie brakuje jej godnych następców.

Zobacz też: Ten sam binarny kod na każdym systemie i urządzeniu. Mozilla zrobi to lepiej niż Oracle

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: