Artikel top billede

Her er alle de barske sandheder om HTML5

Forventningerne til HTLM5 er skruet helt i vejret. Her får du guiden til at undgå rent web-kaos med den nye standard.

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Computerworld News Service: HTML5 bringer fikse nye funktioner og potentialet til et decideret paradigmeskift inden for webprogrammering og som alle, der følger med i den teknologiske udvikling, ved, så er der intet som HTML5, der kan rette op på alle internettets svagheder.

Drys let med HTML5 i din kode, og dine websites bliver hurtigere og smartere - det kan endda gøre dine tænder hvidere.

I hvert fald hvis man skal tro HTML5-hypen. Men virkeligheden lever altså ikke helt op til disse høje forventninger.

Efter i flere år at have svælget i de sofistikerede nye tags og API'er fra HTML5 er tiden nu moden til at erkende, at modellen har alvorlige begrænsninger.

Ikke alene er der god grund til at hænge med hovedet over, at HTML5 ikke vil opfylde vores drømme om nirvana på nettet, der er i visse tilfælde endda også argumenter for at holde sig helt fra HTML5.

Sandheden er, at HTML5 på trods af standardens styrker ikke er løsningen på ethvert problem.

De nye funktioner er tiltrækkende og vil hjælpe til at gøre webapplikationerne til formidable konkurrenter til de lokale apps, men blandt andet på grund af sikkerhedskomplikationer, begrænsninger for lokal datalagring og udfordringer i forhold til synkronisering bør vi alle sammen nedjustere vores forventninger til de nye specifikationer.

Alle teknologier har jo som bekendt hver deres begrænsninger.

Her følger en gennemgang af 11 hårde sandheder, det vil være nødvendigt at indse, hvis man som webudvikler vil få det bedste ud af HTML5.

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Sikkerheden er et mareridt

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Det grundlæggende problem med klientsiden af computeranvendelse er, at brugeren i sidste ende har kontrol over den kode, der kører på maskinen. I tilfældet med web-apps er denne kontrol nemmere end nogensinde at misbruge, især hvis browseren har et godt værktøj til fejlfinding.

Med en JavaScript-debugger såsom Firebug kan enhver, der er nysgerrig efter, hvad Facebook, Google eller andre websites egentlig gør, blot begynde at indsætte brudpunkter og så kigge på koden.

Det er fantastisk til fejlfinding og til at lære, hvordan et website opfører sig, men det er et mareridt i forhold til sikkerheden.

Lad os antage, at der er en variabel med en værdi, du ønsker at ændre. Firebug eller ethvert andet browserprogram til fejlfinding kan uden videre lade dig justere i dataene efter forgodtbefindende.

Er dit mål at narre dine venner til at tro, at du har en anden fysisk placering end din egentlige? Det er let at redigere i de variabler, der indeholder længde- og breddegrader, så din browser kan se ud til at være hvor som helst i verden. Alle de fikse funktioner i din web-app kan modificeres, og browsermiljøet gør det lettere, end det normalt ville være med lokal kode.

Der er dog grænser for, hvor store sikkerhedsproblemer, man kan pådrage sig. Visse JavaScript-værktøjer såsom Google Web Toolkit er næsten lige så komplicerede som almindelige kompilere.

Deres output kan være temmelig uigennemskuelige. Heldigvis kan værktøjer som JavaScript Deminifier, der er en udvidelse til Firefox, hjælpe.

Svært med seriøse data

Faren afhænger selvfølgelig af, hvad det er for en slags applikation.

En ting er, når nogen redigerer deres browsers længde- og breddegradsangivelse for at spille deres venner et pus ved at få det til at se ud, som om de befinder sig på den anden side af kloden, når de logger ind på et website.

Problemerne opstår, når nogen uretmæssigt kvalificerer sig til alle de rettigheder, privilegier og gratis øl, der kan følge med at befinde sig på den ene eller anden fysiske placering.

Når der er penge på spil, bliver det pludseligt alvorligt. Alt dette betyder, at klientbaserede HTML5-apps ikke kan anvendes til seriøs dataindsamling, og det er bedst, hvis alle er klar over sådanne begrænsninger.

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Begrænset lokal datalagring

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

De lokale databaser dybt i din browser er en af de fede ting, der gør det enklere for web-apps at cache-lagre data på din computer.

For enhver, der håber på at levere desktop-lignende datafunktionalitet i browseren, kan disse databaser spare båndbredde og forbedre ydelsen. Men de kan altså ikke give brugerne helt den samme magt over deres data, som de er vant til fra lokale applikationer.

Mulighederne for lagring af data i HTML5 er da helt klart en vigtig tilføjelse, men man kan stadig ikke flytte lagret data til en anden maskine, lave kopier, tage backup eller åbne dem med en anden app. Dataene er begravet dybt nede, hvor browseren gemmer dem.

På en måde er disse databaser faktisk udtryk for det værste fra begge verdener. Man bærer al ansvaret for at opbevare databaserne, men får ingen kontrol.

Nogle af de nyeste browsere gør det muligt for dig at se, hvilke databaser, der er blevet oprettet på din computer, men det er begrænset, hvad der er af oplysninger.

Safari gør det endda muligt at slette databaserne. Men man kan ikke læse informationerne eller flytte dataene til en anden computer. Filerne er ikke designet til at blive flyttet med lethed, selvom det kan lade sig gøre, hvis man ved hvordan.

Det er heller ikke helt ligetil at grave ned i filerne for at se, hvad der er lagret. En programmør kan godt, men kun efter at have studeret formatet og foretaget noget hacking.

Disse filer er ikke ligesom regneark eller tekstdokumenter, der let kan åbnes med enhver editor, hvilket betyder, at dataene ikke er nær så tilgængelige ressourcer, som det er tilfældet for applikationer til desktop.

Lokale data kan manipuleres

Ikke alene har brugeren ingen kontrol over dataene, men det centrale website er også hæmmet i sin håndtering af klientdataene. Har brugeren skiftet browser? Har brugeren skiftet computer?

Mange webudviklere giver op i sådanne spørgsmål og vælger at anvende den lokale datalagring blot til caching af kortvarigt indhold. De kan dermed ikke rigtigt lade brugeren skabe noget på grund af problemer med synkronisering.

Webudviklerne er også tvunget til at overveje sikkerheden af den lokale database. Selvom der ikke findes nogen værktøjer, der gør det let for brugeren at redigere de lokale data og eksempelvis uretmæssigt opgradere sine privilegier, så findes der på den anden side heller ikke nogen måde, hvorpå den centrale server kan forhindre den slags.

Alle de sikkerhedshuller, der blev introduceret ved at lade brugeren justere i JavaScript-koden, påvirker også databaserne. De står pivåbne og venter bare på, at nogen skriver et Greasemonkey-script, eller at en eller anden lokal kode ændrer i dataene.

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Et mareridt at synkronisere offline-apps

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Den lokale datalagring i HTML5 øger mulighederne enormt for at bruge web-apps uden forbindelse til internettet. Det eneste problem er data-synkronisering.

Når en web-app er forbundet til internettet, kan den kontinuerligt gemme data i skyen. Når den er offline, kan dataene i skyen ikke opdateres med de nyeste ændringer.

Når brugeren skifter browser eller anvender en anden computer, kan der hurtigt opstå mange forskellige kopier, og så har vi synkroniseringsvanskelighederne. For at komplicere tingene yderligere kan også computernes ure være usynkroniserede eller i øvrigt indstillet forkert, så de ikke kan anvendes pålideligt til at finde de seneste gemte data.

Det har selvfølgelig også altid været et problem i forhold til lokale apps, men forskellen er, at den lokale model gør det åbenlyst, hvem der er ansvarlig for synkroniseringen:

Mennesker, der håndterer synkroniseringsproblemet ved at kigge på filnavne og ændringsdatoer. Men da HTML5 ikke giver brugerne kontrol over databaserne gemt dybt i deres browsere, er udviklerne nødt til at levere brugergrænsefladen og mekanismerne til håndtering af synkroniseringen. Her tilbyder specifikationerne ingen hjælp.

Der hersker dog ikke fuldstændigt kaos. Som programmør kan man klare hovedpinen ved at anvende systemer til versionskontrol, som er blevet mere og mere sofistikerede for netop at kunne håndtere denne slags problemer.

Men at teknologien eksisterer, betyder ikke nødvendigvis, at det er en nem løsning for programmørerne. Det kan tage tid at flette de forskellige GIT-repositorier. For at kunne håndtere synkroniseringen af deres web-apps er HTML5-udviklerne først nødt til at få styr på disse udfordringer.

Skyen skylder dig intet

Det er ikke helt rimeligt at skyde skylden på HTML5 for alle de strukturelle problemer, der er ved at lagre sine data i skyen, men cloud computing er en essentiel del af visionen bag HTML5, som udnytter skyen til at løse alle udfordringerne ved at installere software og lave backup af data.

I lyset af begrænsningerne for lokal datalagring vil størstedelen af en web-apps lagrede data ligge ude på en server og der findes altså tilfælde, hvor denne tilgang kan være katastrofal.

For ikke så længe siden besluttede Facebook, at firmaet ikke brød sig om et bestemt Linux-baseret plugin til upload af fotos. I en håndevending blev der spærret for pluginet, mens alle de billeder, der nogensinde var uploadet med det, forsvandt uigenkaldeligt fra brugernes profiler.

Sådanne historier er heldigvis ikke almindelige, men af mange forskellige årsager bliver de mere og mere udbredte. Hvordan kan du være sikker på, at det der søde, lille, nystartede webfirma, der lover dig både den ene og den anden gratis service med deres HTML5-app, også eksisterer om et år eller nogle få måneder?

Derfor bør du tænke dig grundigt om, før du overlader det alle dine data.

Og det bliver værre. Ligesom servicebetingelserne for mange web-apps gør klart, så er det ikke længere dine data og i de fleste tilfælde har du ingen juridiske muligheder for at få dine data tilbage. Nogle af de mere skandaløse servicebetingelser insisterer på, at dataene endda kan slettes "uden nogen årsag."

Ikke alene tilbyder HTML5 på ingen måde nogen løsning af disse problemer, dens struktur sørger også i praksis for, at data, der er lagret lokalt i din browser, også vil blive lagret i skyen uden for din kontrol. Dette er ifølge HTML5-promoveringen en positiv egenskab, men det kan lige så let blive til ulempe for modellen.
Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Tvungne opgraderinger ikke for alle

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Der er en anekdote i omløb, som muligvis blot er en vandrehistorie, der fortæller om en person, der over en periode havde brugt en Gmail-konto som kontaktmulighed i forbindelse med uforpligtende seksuelle forhold.

Da denne person tilmeldte sig Google+, trængte alle disse tidligere forhold sig pludselig på, fordi Google+ havde forbundet de gamle e-mailadresser med personens forskellige netværk.

Når en virksomhed bag en web-app skal opgradere, er den nødt til at opgradere alle brugerne mere eller mindre samtidig.

Selvom dette fremlægges som noget, der fritager brugerne fra selv at håndtere softwareinstallationerne, så kan det være et mareridt for enhver, der ikke ønsker de nye funktioner. Det er ikke kun et potentielt problem for folks privatliv som eksemplificeret i ovenstående historie.

Ny software kan ofte spænde ben for andre applikationer, der var afhængige af specifikke funktioner i den gamle software.

Web Workers tilbyder ingen prioritering

Web Workers er blandt de mere interessante tilføjelser i HTML5. Frem for at være afhængig af wait, delay- og pause-kommandoer i JavaScript kan webudviklere nu splitte deres kode op og adskillige de CPU-intensive dele i forskellige såkaldte Web Workers.

Med andre ord får HTML5's Web Workers browseren til at fungere mere ligesom et styresystem.

Desværre kopierer de dog ikke alle styresystemets funktioner. De tilbyder en måde at opdele beregningsopgaverne, men det er ikke muligt at administrere dem effektivt eller at opsætte prioriteter. API'en gør det kun muligt at sende meddelelser ind og ud af Worker-objekter. Derudover håndterer browseren resten.

Desuden er der visse farer forbundet med denne tilføjelse. Vil beregningstunge programmer såsom kodebrydere forsøge at snige sig ind i baggrunden på populære websites?

Vil datakriminelle begynde at lokke brugere ind på websites, der udnytter deres computeres regnekraft til deres egne skjulte formål? Der findes i forvejen malware, der skjuler sig i ellers brugbar software, så det er sandsynligvis kun er et spørgsmål om tid, før denne funktionalitet vil blive udnyttet på en lignende måde.

Der er ikke meget, man som bruger kan gøre, for man har ingen måde at holde øje med oprettelsen af Worker-objekter eller at overvåge, hvad de foretager sig. Man vil bare opleve, at ens computer bliver langsommere, efter man har besøgt et inficeret website.
Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Inkompatibilitet hvad angår filformater

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

HTML5 introducerer de to tags "video" og "audio", som ved første øjekast ser ud til at være lige så lette at bruge som image-tags. Smid en URL ind og browseren streamer video- eller lyddata. Men hvis det var så let, hvorfor har jeg så spildt to uger på at forsøge at få basale lydfiler til at afspille i alle de store browsere?

Det er ikke rigtigt HTML5-kommiteens skyld, at de individuelle browserproducenter har besluttet at implementere nogle men ikke alle af de forskellige eksisterende lyd- og videoformater.

Der foregår jo en vis kamp om dominans, også hvad angår formatering af mediefiler. Men det er udviklerne, der sidder med problemet, når en fil, der fungerer uden problemer i én browser, ingenting kan i en anden.

Hvordan tester man for den slags? API-udviklerne har været smarte nok til at inkludere funktionen canPlayType, men selv den funktion understøttes ikke i alle browsere.

Implementeringen afhænger af browseren

<div>Den idylliske vision om HTML5 er én ting. Den beskidte virkelighed er en anden. Det er sandt, at programmørerne gør deres bedste for at bygge arkitekternes drøm, men nogle af tag'ene og objekterne fungerer simpelthen ikke korrekt.

For eksempel er der mange gode ting ved HTML5's API til bestemmelse af fysisk placering, hvilket også kaldes geolokation. Den tilbyder nogen beskyttelse af privatlivet og en smule kontrol over præcisionen.

Hvis så bare den fungerede konsistent - en af testbrowserne time out'ede konsekvent, selvom den burde vide, at min desktop-computer ikke har nogen GPS-chip.

Egentlig er dette mere en klage over, hvordan det ikke lykkes browserne at implementere denne funktion med nogen konsistens, end det er en kritik af selve API'ens struktur. Denne hårde sandhed fremhæver de browserafhængige udfordringer, som webudviklerne står overfor, hvis de satser på at gøre det HTML5-baserede web-app-paradis til virkelighed.</div>
Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Forskelle i hardware bringer nye udfordringer

Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5

Det virker urimeligt at klage over, hvordan nogle browserproducenter gør en ekstra indsats for at levere langt bedre ydelse, men ingen god gerning forbliver ustraffet. Som den nye Ferrari-ejer finder ud af efter at have viklet sin nye bil rundt om en lygtepæl, så er ekstra styrke ikke altid en fordel.

Microsoft har gjort et godt stykke arbejde med at øge ydelsen af Canvas-objektet i sin browser, Internet Explorer, ved at integrere det med hardwaredrivere på lavt niveau. Virksomheden har endda fået udviklet fine spil såsom pirateslovedaisies.com for at vise styrken frem.

Men nu er programmørerne nødt til at forholde sig til, om disse ekstrafunktioner er tilgængelige, og det står ikke klart, hvordan man måler, hvor hurtigt ens kode kører.

Spildesignerne bag pirateslovedaisies.com har for eksempel inkluderet en knap, der kan tænde eller slukke for ekstrafunktionerne fra Internet Explorer.

Findes der en API, der gør det muligt at spore disse funktioners tilgængelighed? Ikke rigtigt. Det letteste er at teste efter navnet på browseren og forsøge at estimere frame raten. Jeg ved godt, at spiludviklere har skullet håndtere den brede vifte af tilgængelig hardware i årevis og at den eneste endelige løsning er at forbyde al innovation. Men dette er blot endnu en udfordring for webudviklerne.

Politik som sædvanlig

Der er nogen, der kalder hovedmanden bag HTML5-standarden, Ian Hickson, for Supreme Dictator for Life, i en hentydning til at han har alt for meget at sige i formuleringen af standarden.

Det er selvfølgelig ment delvist som en vittighed, men den rammer altså ikke helt plet. Forfatterne bag standarden kommer blot med forslag, derefter er det browserproducenterne, der tager de virkelige beslutninger.

Det er op til dem, om de vælger at implementere en funktion, og derefter er det op til webudviklerne at afgøre, om resultaterne er stabile. Efter nogle få år tilpasses standarderne ofte implementeringerne.


Mange JavaScript-udviklere har overladt problemet om kompatibilitet til de, der skaber bibliotekerne såsom jQuery. Disse lag isolerer os fra forskellene browserne imellem. Vil de mon være stærke nok i fremtiden til fortsat at glatte disse forskelle ud? Det vil tiden vise.

Dette spørgsmål fremhæver den fundamentale problematik på området.

Vi ønsker den frihed, den kreativitet og det overflødighedshorn af funktioner, der kommer af, at mange forskellige browserproducenter konkurrerer med hinanden. Innovationen sker med en god hastighed, men det skaber endnu større forskelle, fordi browserudviklerne kæmper om at tilføje nye funktioner for at skille sig ud fra konkurrenterne.

Men vi ønsker også den stabilitet, det kan give, at der findes en enkelt diktator med kontrol over platformen. Men desværre har verden endnu ikke fundet den ideelle løsning i kampen mellem autoritære principper og demokrati.

I stedet for at mukke for meget over de problemer, som er resultatet af disse uoverensstemmelser, så er det muligvis bedre at indtage den holdning som Winston Churchill gav udtrykt for, da han sagde til Underhuset i det britiske parlament:

"Man siger, at demokrati er den værste styreform, hvis man ser bort fra alle de andre, der har været forsøgt igennem tiderne."

Oversat af Thomas Bøndergaard.
Læs også:

Grænsen for HTML5 er nået - hvad nu?

Her er de vigtigste funktioner i det nye HTML5




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Højer og Lauritzen ApS
Distributør af pc- og printertilbehør.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
EA Excellence Day

Hvad er det, der gør it-arkitektens rolle så vigtig? Og hvad er det for udfordringer inden for områder som cloud, netværk og datacentre, som fylder hos nogle af landets bedste it-arkitekter lige nu? Det kan du her høre mere om og blive inspireret af på denne konference, hvor du også får lejlighed til at drøfte dette med ligesindede.

23. april 2024 | Læs mere


AI Business Excellence Day – sådan folder du mulighederne ud

Mange danske virksomheder har eksperimenteret med AI-projekter af begrænset omfang, men kun de færreste har for alvor udforsket mulighederne i storskala. Det gør vi her! Du vil blandt andet få mulighed for at se eksempler på, hvordan AI kan anvendes som accelerator i storskala og skubber til grænserne for, hvordan det er muligt at integrere teknologien, så potentialet for alvor foldes ud.

24. april 2024 | Læs mere


Unbreakable - sådan sikrer du dig vedvarende og uafbrudt adgang til dine data

Vi dykker ned i værdien af en stabil og pålidelig storage-platform og hvilke muligheder der findes, for at sikre den højeste grad af redundans og tilgængelighed. Områder som date-beskyttelse og cyber-sikkerhed vil også blive berørt.

25. april 2024 | Læs mere