Många aspekter att ta med i beräkningen.
Att ta fram en ny rekommendation för vilka webbläsare man skall stödja är en utmaning. I arbetet så måste en mängd aspekter tas med i beräkningen, t.ex. kan man i drift smidigt uppdatera och administrera en viss webbläsare i organisationen.Avgränsning
Idag har man höga krav på vad man måste kunna göra i webbläsaren. Centralt för många verksamheter är hantering av GIS (Geografiskt Informationssystem). Att kunna interagera med en karta i webbläsaren är ingen enkel uppgift. Med tanke på detta tittar vi gärna framåt (ur ett standard-perspektiv), med intresse på vad som hänt i webbläsarvärlden under senare år.Jag fokuserar i denna artikel endast på standard- och teknik-aspekten av webbläsare för desktopen - och alltså inte för mobila enheter.
Standarder måste tas i beaktande eftersom den webbläsare som är vanligast i dag kanske inte är det i morgon. Följsamhet gentemot standarder minskar produktberoende och ökar valfrihet!
De tekniska detaljerna som nu följer är en del av det appendix som hör till utredningen.
Appendix A, Teknisk utredning
Standardiseringen görs huvudsakligen av W3C. Begreppet HTML5 är ett paraply för en mängd tekniker som använts på webben och nu standardiseras. Standardiseringsarbetet släpar per definition efter jämfört med innovation. Man standardiserar helt enkelt det som blev bra ute i community-sfären.
Det löpande arbetet (community-sfären) med att driva teknikerna framåt och hantera buggar sköts av WHATWG. Det finns ytterligare grupper att hålla reda på, såsom Khronos. Khronos arbetar för att standardisera WebGL.
De organisationer och företag som står bakom olika browsers är:
TODO: kommentera alla vendors.
Microsoft
Microsofts Internet Explorer är ökänd för att gärna vilja gå sin egen väg. Detta kan historiskt ses ur två perspektiv
- Browsern var surf-standard, även om den inte följde W3C standard. När Microsoft väl hade monopol så drev inte företaget plattformen framåt eftersom webben som plattform kunde konkurrera med deras operativsystem.
- Microsoft är ett företag som inte förespråkar open source, utan hellre säljer propriotär mjukvara. Att måna om öppna standarder och implementera dessa ses inte som en konkurrensfördel.
HTML5 paraplyet
HTML5 är en term som rymmer en mängd tekniker. Dessa tekniker har florerat på webben under en längre tid och standardiseringsprocesserna har börjat hinna ikapp. Frågan är hur bra olika browsers implementerar dessa tekniker.
Beroende på vad man vill uppnå så får olika tekniker större vikt. Men ett antagande är att nedanstående tekniker kommer att spela en stor roll.
JavaScript motorer
Utan motor går det inte att köra. Utvecklingen av JavaScript-motorerna går snabbt fram och skillnaderna mellan webbläsare och versioner är väldigt stor.
Dessa benchmarks är inte helt enkla att genomföra eftersom de viktiga parametrarna beror på lösningens domän. Dessutom är jämförelserna haltande när det gäller versioner. Chrome är vinnaren just nu. Men grafer kan visa det motsatta eftersom IE 9 jämförs med Chrome 10. Men eftersom Chrome uppdateras med täta intervall så är förhållandet i själva verket det omvända med Chrome v22. Vad gäller Javscript så finns även här standarder att ta hänsyn till.
Vanligt benchmark är Sunspider:
Web Socket
Web Socket (WS) är TCPIP som wrappas av HTTP, vilket används för att strömma data. För att uppnå denna funktionalitet så har tidigare polling eller long polling använts. Comet är en samlingsterm för tekniker som möjliggör push av data till browsern och strömning av data.
WS möjliggör så mycket mer, eftersom det ger möjlighet att kommunicera data i båda riktningarna på ett sätt som tidigare bara var möjligt i feta klienter. Vidare ger det bättre möjligheter att komma igenom brandväggar, proxies och annan infrastruktur.
Google använder i tex Gmail SPDY som måste anses som likt Web Socket. Men eftersom standardiseringen och implementation av Web socket har kommit långt både klient och serversidan är tekniken i talande stund det enklare valet.
Binära data typer
JSON har likställts med webbens binära data format. Men med dagens rika användarinterfaces (UI) så krävs det att man kan hantera binärt data i JavaScript.
Rika renderings möjligheter
Möjlighet att rita upp kartor eller liknande rika ui:n ställer höga krav. I dagsläget använder man en 2D-produkt som heter OpenLayers.
2D
Tvådimensionell grafik uppnås genom att använda canvas som i princip är en yta man kan rita i via ett API. Det finns ett flertal standarder, som SVG, att ta hänsyn till här.
TODO: skriv något om Kanvas och SVG.
För att uppnå tredimensionell grafik så finns det ett flertal tekniker. De proprietära teknikerna har dominerat segmentet under lång tid, såsom Flash och Silverlight. Även här har standardisering börjat hinna ikapp, och WebGL standardiseras av Khronos-gruppen och tekniken implementeras i tex Google Maps.
För Jordbruksverket är det mycket intressant att se på GeoExt som är den centrala kart-komponenten i GEO-dataapplikationer. Version 3 av GeoExt kommer att vara baserad på WebGL med bakåtkompabilitet för browsers utan stöd för WebGL.
CSS3
Teknik för att lägga stil på DOM:en. Eftersom tekniken har bliv allt mer kraftfull så glider dess användningsområde ihop med andra renderingstekniker.
CSS3 transitions
CSS3 transforms
CSS3 transitions
CSS3 transforms
TODO: skriv något om detta.
Cache
För att uppnå en snabb och smidig applikation så är lokal cache en nödvändighet. Områdena som man läser med olika tekniker är många och beror på domänen.
TODO: skriv något om detta.
Web workers
JavaScript är körs med en tråd, dvs single threaded. För att göra tunga beräkningar i browsern så måste man kunna tråda av processer. Detta löses genom tekniken Web Workers.
http://caniuse.com/#search=web%20workers
http://caniuse.com/#search=web%20workers
Denna teknik har ingen koppling till Document Object Model (DOM) utan får instruktioner och data via message passing. Denna teknik har lider av att den tidigare skett genom ”by value”. Om den skall vara effektiv så måste kommunikationen ske ”by reference”, med hjälp av sk Transferable Objects.
Endast browser som är baserat på Webkit, exempel: Chrome >= 17, stödjer denna teknik.
Slutsats
Chrome dominans!
TODO: skriv något om detta.
Källmaterial
HTML5
http://blog.n01se.net/blog-n01se-net-p-375.html
http://en.wikipedia.org/wiki/File:HTML5-APIs-and-related-technologies-by-Sergey-Mavrody.png
http://en.wikipedia.org/wiki/File:HTML5-APIs-and-related-technologies-by-Sergey-Mavrody.png
http://trac.osgeo.org/openlayers/wiki/three
http://openlayers.org/blog/2012/09/28/ol3-vienna-code-sprint-report/
http://openlayers.org/blog/2012/09/28/ol3-vienna-code-sprint-report/
WebGL
http://www.khronos.org/webgl/
http://www.openajax.org/runtime/wiki/2D_Drawing/Vector_Graphics
http://stackoverflow.com/questions/568136/svg-vs-canvas-where-is-the-web-world-going-towards
http://www.openajax.org/runtime/wiki/2D_Drawing/Vector_Graphics
http://stackoverflow.com/questions/568136/svg-vs-canvas-where-is-the-web-world-going-towards
Den här kommentaren har tagits bort av skribenten.
SvaraRaderaDet gäller väl att definiera vilka krav kunden/verksamheten ställer på webbläsarna och sedan stödja de webbläsarna. Antar att ni inte bygger en publik sajt, för där är det ju alltid besökaren som bestämmer vilken webbläsare hon vill använda.
SvaraRaderaÄr inget stort fan av IE, men IE10 ser lovande ut (Microsoft har blivit betydligt bättre på att hålla sig till W3C standard på senaste tiden) och det finns en risk att även denna webbläsare kan bli en stor aktör.
Jag hade nog försökt stödja de senaste webbläsarversionerna helt enkelt.
/Nils
Tack Nisse!
RaderaDet är därför hela det här kapitlet om standarder är så viktigt.
Webbläsare valet är en sak. Men om man sedan utvecklar så nära standard som möjligt så bryter man inte funktionalitet i de andra läsarna.
När det gäller IE, kolla vad MS säger om WebGL. Säkerhetsproblem är till för att lösas, men Microsoft vill inte?
Det känns som att MS ligger risigt till när deras operativ blir allt mindre viktigt.
Nice!
SvaraRaderaNågra kommentarer:
"Microsoft är ett företag som inte förespråkar open source, utan hellre säljer propriotär mjukvara. Att måna om öppna standarder och implementera dessa ses inte som en konkurrensfördel"
Jag fått uppfattningen (högst objektivt) att MS på senare tid har börjat gå ifrån detta, om än försiktigt. Jag kan dock ha fel, men stycket luktar ändå lite väl mycket klassisk smutskastning för en seriös utredning. =)
Kanske inte relevant, men likväl intressant – JavaScript standardiseras av ECMA International (http://www.ecma-international.org/memento/TC39.htm). =)
Angående web workers: "Endast browser som är baserat på Webkit, exempel: Chrome >= 17, stödjer denna teknik."
Stämmer det? Enligt sidan du länkar till så stöds det av Opera och delvis av FF. Ingen av dem är WebKit-baserad.
/ Mikael
Kritiken mot Microsoft är kanske för hård eller rentav fel. Har du något exempel eller artikel om deras arbete för öppna standarder eller förändrad ståndpunkt?
RaderaAnnars så har IE enligt mig kostat företagen otroligt mycket pengar. Om man ser till informationen på caniuse.com så implementationen på vissa av teknikerna inte på tapeten ens i IE 10 (ex WebGL och File API).
Det är dock möjligt att de teknikerna inte tillhör de "viktiga" i HTML5 som man skall ha med här. Men det är inte min bedömning just nu.
Ang. web workers så är det en otydlighet du poängterar. Transferable Objects är den delen av Web Workers som endast stöds av Chrome >= 17.
Web Workers stöds enligt tabellen jag länkat till på caniuse.com. Jag skall fixa det.
Självklart skall det faktum att JavaScript standardiseras av ECMA vara med.
Tack Mikael!
Jag säger inte att kritiken mot MS är fel (jag tillhör själv den kritiska skaran), men kanske något onyanserad. Jag har inga direkta källor för min uppfattning, men en av de första träffarna på Google om man söker på "microsoft open source" är denna artikel (som jag själv inte har läst): http://www.zdnet.com/blog/microsoft/microsoft-is-serious-about-open-source-10-proof-points/12784
RaderaUppfattningen att IE har kostat många mycket pengar delar jag helt och hållet. Jag har hört att IE6 har kostat mer än milleniebuggen (återigen ingen källa).
Några osammanhängande tankar som kanske reser fler frågor än svar.
SvaraRadera1. Stort plus i kanten att frågan når communityn från första början!
2. Det är för internt bruk antar jag, så att stödja något annat än senaste versionen känns meningslöst då man kan pusha ut uppdateringar och då hela tiden kan följa med i utveckligen och dra nytta av nyheter i den takt de blir tillgängliga.
3. Är det ett problem i en organisation som jordbruksverket att använda en webbläsare som exvis Chrome som pratar ganska friskt med Google?
4. Om föregående punkt inte är en issue känns Webkit (Chrome & Safari) samt Gecko (Firefox) som en bra start.
5. IE blir bättre och bättre men de ligger alltid tre eller fler steg bakom alla andra. För tre år sedan satt man och svor över IE6, idag gör man det samma över IE8. Så ja, de blir bättre. Men de är aldrig "edge" och om jag fick välja skulle jag vilja slippa arbeta med IE öht.
6. Som ni säger så är HTML5 långt ifrån klart även om mycket börjar stabilisera sig, så man ska nog fortfarande ha ett ganska öppet sinne för framtiden.
Tack Samuel!
Radera1. Visst är det. Början på något större, vem vet :)
2. Helt sant. Men en aggressiv uppgradering av läsare kan tvinga fram migrering av interna applikationer. Man måste vara uppmärksam och medveten om roadmap för vald browser.
3. Intressant! Har inte tänkt på det. Jag utgår från att man inte skickar data som kan kompromissa känsligt material. Problemet ryms inte under "Standarder", men jag skall ta med frågan.
4. Eftersom det rör sig om webbläsar valet för interna användare så kan man med fördel begränsa floran.
5. Precis. När det gäller interna system så kanske man väljer den bästa webbläsaren. För externa system så kan man nig inte bortse från statestik över vilken som är vanligast.
6. Jag skulle ändå bedömma det som att man kan få en mycket god bild av hur det kommer att bli just nu. Tex så har Web Sockets standardiserats även på serversidan i Javas EE 7 stack (JSR-356).
En kommentar om IE, är att det är fel att säga alla problem med IE beror på IE självt. Jag skulle hävda att ett större problem är att företag inte uppdaterar för att de inte kan uppdatera sina applikationer så att de fungerar i moderna webbläsare. Att företag idag sitter med IE7 och IE8 när det är IE9 som borde vara installerat är i min erfarenhet ett respektive webbläsare skulle varit en katastrof när de var "aktuella".
SvaraRaderaAtt välja en webbläsare skulle jag säga är suboptimalt, att välja strategi för att kunna följa utveckling upplever jag som viktigare. Hur ska applikationerna ni utvecklar idag vara aktuella om 5 eller 10 år när det ni väljer idag är hopplöst akterseglat? Eller ska ni vara fast i Chrome 17 då utan möjlighet att kunna uppdatera?
Meningsbyggnad är svårt på morgonen....
SvaraRaderaAtt företag idag sitter med IE7 och IE8 när det är IE9 som borde vara installerat är i min erfarenhet ett större problem än att respektive webbläsare skulle varit en katastrof när de var "aktuella".
Viktig aspekt.
RaderaAtt försöka följa standarder och vara medveten om när man inte kan följa standarder är viktigt.
Om man väljer att tex alltid köra den senaste Firefox så måste man vara medveten om webbläsarens roadmap så att man kan migrera koden när det behövs.
Alltså inte: Ojsan det slutade fungera, igen!
Tack daydreaming!
Det är en balansgång, frysa till att fungera med Webbläsare A, version B och sedan tvinga alla användare att använda det valet för all framtid. Alternativet är att man har en plan för att varje år uppgradera sin applikation till dagsfärsk standard. Det är inte konstigare än att man uppgraderar till nytt operativsystem, men behöver hända mycket oftare.
RaderaHåller helt med.
RaderaFördelen med att kunna använda en läsare under en tid är att drift får ett lättare liv och att användare inte måste lära om sig.
En positiv sak angående IE är att Microsoft nu kommer släppa nya versioner av IE via rekommenderade automatiska uppdateringar. Källa: http://paulirish.com/2012/the-skinny-on-ies-update-policy/
SvaraRaderaBra artikel!
RaderaTack Nisse.