UTVIKLING

Google lanserer Portable Native Client

Men selskapets nye webapp-plattform er allerede omstridt.

Den store nyheten i Chrome 31 har mest med NaCl (salt) og Pepper å gjøre.
Den store nyheten i Chrome 31 har mest med NaCl (salt) og Pepper å gjøre. Bilde: Google og PantherMedia
Harald BrombachHarald BrombachNyhetsleder
14. nov. 2013 - 07:37

I motsetning til det digi.no skrev på tirsdag, kommer ikke Chrome 31 i neste uke. I stedet kom den nye versjonen av Googles nettlesere allerede tirsdag kveld. Vår dato var basert på en kjedelig regnefeil.

Som vi skrev i på tirsdag, bringer Chrome 31 flere nyheter. Men de fleste er ikke umiddelbart synlige for vanlige brukere. Oppdateringen er uansett viktig, for den fjerner 25 ulike sikkerhetshull, samt bringer med seg en ny og sikrere versjon av Flash Player. Det er ikke kjent at noen av sikkerhetshullene skal være utnyttet av ondsinnede.

PNaCl

Det er likevel noe helt annet ved Chrome 31 som er verdt litt ekstra oppmerksomhet. Inkludert i nettleseren følger nemlig Portable Native Client (PNaCl, uttales som «pinnacle»).

PNaCl er basert på Native Client (NaCl) som lenge har fulgt med Chrome. NaCl brukes til å kjøre arkitekturspesifikke, men operativsystem-uavhengige applikasjoner – skrevet i C eller C++, i en egen sikkerhetssandkasse i Chrome. Fordi NaCl-applikasjoner har mer direkte tilgang til den underliggende maskinvaren enn det nettlesere tilbyr til webstandard-baserte applikasjoner, kan de også utføre mer krevende oppgaver.

Men fordi NaCl-applikasjoner ikke er like flyttbare som tradisjonelle webapplikasjoner, har NaCl primært blitt brukt i forbindelse med applikasjoner som kun er beregnet for Chrome og Chrome OS. Disse tilbys i Chrome Store.

Flytdiagram for utvikling og kjøring av henholdsvis PNaCl- og NaCl-baserte applikasjoner. <i>Bilde: Google</i>
Flytdiagram for utvikling og kjøring av henholdsvis PNaCl- og NaCl-baserte applikasjoner. Bilde: Google

PNaCl tar NaCl et betydelig skritt videre ved også å gjøre applikasjonene arkitekturuavhengige. I stedet for at utvikleren må kompilere separate applikasjoner til hver av prosessorarkitekturene som skal støttes, slik man må med NaCl, kan man med PNaCl kompilere applikasjonene bare én gang. Dette skaper en LLVM-lignende bytekode som Chrome kan lese og konvertere til en arkitektur-spesifikk maskinkode som er optimalisert for enheten den kjøres på, uavhengig om det er x86-, ARM- eller MIPS-arkitektur som benyttes av enheten. Dermed vil PNaCl-applikasjonene på sikt også kunne kjøres på nettbrett og smartmobiler så snart det også kommer PNaCl-støtte i Chrome for slike enheter. I praksis er det kun Android dette vil gjelde, siden Apple ikke tillater at Chrome for iOS tolker kode på egenhånd.

Det er mulig å teste noen enklere PNaCl-demoer her.

Google antyder likevel at PNaCl vil kunne bli tilbudt til andre nettlesere på sikt. Det vil trolig avhenge av at også andre nettlesere støtter Pepper Plugin API (PPAPI), som er en modernisert utgave av Netscapes gamle plugin-grensesnitt, NPAPI, som de fleste nettlesere fortsatt benytter.

Likevel skal det være for utviklere som ønsker å tilby PNaCl-applikasjoner til Chrome å gjøre disse tilgjengelige også for andre nettlesere, uten å måtte gjøre altfor mye jobb. Løsningen heter pepper.js, et JavaScript-bibliotek som gjør det mulig å kompilere PNaCL- og Pepper-applikasjoner om til JavaScript ved hjelp av LLVM-til-JavaScript-kompilatoren Emscripten.

Dette skal fungere i alle moderne nettlesere. Noen av de samme demoene som er tilgjengelige for Chrome og PNaCl er tilgjengelige for andre nettlesere her, men da basert på pepper.js. Den opplevde ytelsen av applikasjonene avhenger av JavaScript-ytelsen til den enkelte nettleser.

Ønskelig?

Så kommer det store spørsmålet: hva er det som gjør dette bedre enn dagens allerede døende plugins? Google vil jo selv fjerne støtten for alle andre plugins enn Adobe Flash i Chrome i løpet av 2014, og (P)NaCl har like lite med åpne webstandarder å gjøre som Flash og Silverlight. Tvert imot er det Google-styrt teknologi som det ikke finnes konkrete planer om å gjøre til en åpen standard. Kritikk har for lengst kommet.

Det som taler til fordel for PNaCl er først og fremst plattform-uavhengigheten, selv om den på ingen måte er fullstendig, siden PNaCl i alle fall foreløpig kun fungerer i Chrome. Dessuten er PNaCl basert på åpen kildekode med Apache- eller BSD-lignende lisenser. Det betyr at koden også kan brukes i andres proprietære programvare. Men det spørs om dette vil kunne skje så lenge teknologien ikke er gjort til en åpen standard som Google ikke kan endre etter eget forgodtbefinnende.

En omfattende gjennomgang av PNaCl ble holdt allerede under Google I/O-konferansen i mai i år. Den kan sees nedenfor.

PNaCl er på ingen måte ferdig, for det er betydelige mangler. En del av disse er listet her.

Chrome OS
Som digi.no tidligere har skrevet, er Chrome Googles viktigste utviklingsplattform. Men selskapet tilbyr også det Chrome- og Linux-baserte operativsystemet Chrome OS som framstår som en stadig mer potent plattform. PNaCl passer dessuten som hånd i hanske for Chrome OS, som stort sett kjører de samme applikasjonene som Chrome, men gjerne på billigere maskinvare med x86- eller ARM-baserte prosessorer.

Det som gjenstår å se er om applikasjonsutviklere tenner på ideen om å kunne tilby applikasjoner med høy ytelse som fungerer på tvers av både pc-er og nettbrett – de sistnevnte med enten Android eller Windows 8. For som tidligere nevnt kommer neste versjon av Chrome med en Modern UI-modus som er nesten identisk med brukergrensesnittet man finner i Chrome OS.

    Les også:

Les mer om:
Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.