ZA PROGRAMERE, izgradnja nove aplikacije nikada nije tako jednostavna kao pisanje koda. To je zato što većina softvera zavisi od drugog softvera, kao što su sistemi za upravljanje bazama podataka, za rad. Samo zato što aplikacija radi na vašem laptopu, to ne znači da će dobro funkcionisati u centru za obradu podataka vaše kompanije, koji možda neće imati neki od softvera od kojeg zavisi njen rad.

Investitori su uložili stotine miliona dolara u startupe kao što su HashiCorp i GitLab koji pokušavaju da pojednostave proces dobijanja aplikacija spremnih za rad u data centrima. Jedna od najistaknutijih među njima je „Docker„, koji je popularizovao „kontejnere“, tehnologiju koja olakšava slaganje softvera za pokretanje u oblaku.

Međutim, suosnivač kompanije Docker Solomon Hykes vjeruje da će tehnologiju koju je izgradio kompanija uskoro zamijeniti nova tehnologija za izgradnju prenosnih aplikacija poznatih kao WebAssembly, ili „WASM“. Hykes i drugi misle da je WASM brža i sigurnija alternativa tradicionalnim kontejnerima. Da je WASM bio u 2008. godini kada su Hykes i kompanija izgradili Docker, oni „ne bi trebali“ da kreiraju Docker, Hykes je tvitovao u martu. „Toliko je to važno.“

Hajks, koji je prošle godine odstupio sa funkcije direktora Dockera, ali je još uvijek u upravnom odboru kompanije, nije baš neutralna stranka. On je investitor u WASM-fokusiranom startupu zvanom Wasmer. Brzo je pratio svoj početni tweet da bi rekao da bi Docker jednog dana mogao podržati WASM aplikacije. Docker nije odgovorio na zahtjev za komentar.

On nije jedini koji obećava u novoj tehnologiji. Mozilla i drugi proizvođači web pretraživača predstavili su WASM 2017. kao novi način kreiranja aplikacija koje se pokreću u svim većim preglednicima, uključujući Chrome, Firefox i Safari. Međutim, koristi se i za kreiranje aplikacija koje se izvode izvan pretraživača. Na primer, kompanije za računarstvo u oblaku Fastly i Cloudflare sada dozvoljavaju korisnicima da pokreću WASM aplikacije na svojim serverima.

U istoj kategoriji programiranje na portalu IT-mixer.com pročitajte i tekst: PHP ili Node.js: šta izabrati?

 

Još je rano za WASM

 

Trenutno je podržano samo nekoliko jezika, uključujući C, C ++ i Mozilla Rust. Cloudflare samo preporučuje korištenje WASM-a na njegovoj usluzi za uske računalne teške namjene, kao što je obrada zvuka ili mijenjanje veličine slika, ali ne i za izgradnju potpunih aplikacija. Međutim, osnivač Wasmera Syrus Akbary smatra da će na kraju postati univerzalna kompjuterska platforma, ispunjavajući marketinšku oznaku „Napiši jednom, pokreni bilo gdje“, koju je sprovela Java 1990-ih.

Java je do te mjere ispunila obećanje. Međutim, kako je razvoj aplikacija sve složeniji, programeri se sada suočavaju sa izazovima koji se nadilaze u osiguravanju da aplikacija radi na više hardverskih arhitektura i operativnih sistema. Jedna je potreba za instalacijom i konfiguracijom dodatnog softvera kako bi aplikacija ispravno funkcionirala. Docker i slični alati rješavaju taj problem. Međutim, Fastly CTO Tyler McMullen kaže da prethodne tehnologije dizajnirane da naprave aplikacije više prenosive, stvaraju kompromis između sigurnosti i performansi. WASM, kaže on, ne zahtijeva takve kompromise. „Pogledali smo postojeće tehnologije i ništa drugo ne odgovara našim potrebama“, kaže on.

Prednosti WASM-a proizlaze iz njegovog porijekla kao tehnologije pretraživača. Preglednici sada postoje za praktično svaki računarski uređaj koji možete zamisliti. Proizvođači pretraživača i organi za web-standarde proveli su godine osiguravajući da web programeri mogu pisati kod koji će raditi na praktično svakom pretraživaču koji je usklađen sa standardima, bez obzira na hardver i operativni sistem krajnjeg korisnika. Proizvođači pretraživača su se takođe potrudili da zadrže kodove veb sajtova izolovanim od operativnog sistema vašeg uređaja, pa čak i od drugih veb sajtova koje ste možda otvorili.

Šta je zapravo WASM?

WASM je počeo kao način da programeri pišu softver koji radi u pretraživaču koristeći druge jezike osim JavaScript, standardni jezik za kod koji se pokreće u pregledniku. Tokom godina, JavaScript se razvio u moćan jezik koji može da stvori složene aplikacije nalik na desktop, kao što je Google Docs, ali i dalje ima svoja ograničenja. Performanse su velike.

Programeri pišu softver koristeći ljudski čitljive programske jezike. Ali oni moraju prevesti ovaj „izvorni kod“ u mašinski čitljiv kod prije nego što ga računar pokrene. Kada koristite web aplikaciju, vaš preglednik preuzima JavaScript i prevodi ga u letu u mašinski čitljiv kod. Ta stalna potreba za prevođenjem je jedan od razloga zašto su čak i najbrže web aplikacije sporije od dobro napisanih izvornih aplikacija.

Neki izvorni kod se može prevesti u mašinski kod brže od drugog izvornog koda. Programski jezici „visokog nivoa“ kao što je JavaScript olakšavaju programerima da im omoguće da daju manje specifične instrukcije kompjuteru. Razmislite o tome kao da možete nekome reći „napraviti sendvič od putera i marmelade“ bez objašnjavanja gdje pronaći sve sastojke, koliko je teško povući vrata frižider da bi ih otvorili, ili koliko pritiska i količine da se nanesu na nož kada mažete puter i marmeladu. To programerima čini lakšim i bržim za pisanje koda, ali pretraživač onda treba da uradi više posla kako bi preveo instrukcije na visokom nivou u izuzetno detaljne instrukcije koje su potrebne mašini.

WASM u osnovi dozvoljava programerima da pišu na jeziku „visokog nivoa“, a zatim ga prevedu u tip niskog nivoa nazvanog bajt-kod „bytecode“ koji zahtjeva manje prevoda. Ključno je da se prevođenje u WASM bajt-kod desi prije nego što posjetite web-lokaciju, tako da vaš računar ima manje posla nakon preuzimanja koda.

U tom smislu, WASM je sličan Java platformi, koja omogućava programerima da pišu kod u Java jeziku ili nekoliko drugih, i prevedu ga u bajtkod koji se može izvoditi na mnogo različitih platformi. ALI, Fastly’s McMullen kaže da WASM aplikacije koriste manje kompjuterskih resursa nego Java aplikacije. Zbog Mozilla-inih napora da izoluje WASM kod od uređaja na kojem radi, manje je zabrinutosti da će se aplikacije međusobno ometati. McMullen kaže da bi WASM mogao učiniti više korisničkih aplikacija sigurnijim tako što bi različite korisnike iste aplikacije izolirale jedna od druge.

Glavni istraživač Mozilla, Lin Klark, koji je radio na WASM-u, smatra da bi mogle postojati i druge sigurnosne prednosti.

Programeri se često oslanjaju na „module“ otvorenog koda koji mogu pružiti zajedničku funkcionalnost kao što je provjera autentičnosti lozinke. Ove komponente olakšavaju život programerima tako što ih oslobađaju potrebe da ponovo „izmisle točak“. Međutim, od programera se zahtijeva da vjeruju u sve veći broj autsajdera. Prošle godine, nakon što je programer dao kontrolu nad modulom za obradu podataka za popularnu programsku platformu Node, vlasnik je koristio modul za distribuciju malware-a.

Clark kaže da bi se WASM mogao koristiti za izolovanje ovih modula ne samo od osnovne platforme koda, već i jednih od drugih. Ili različiti WASM sistemi mogu dozvoliti programerima da odrede dozvole za svaki dio koda, za razliku od načina na koji možete postaviti različite dozvole za aplikacije pametnih telefona.

(Wierd)