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.