HTML 5 och Silverlight

Det är en stor buzz bland webbutvecklare just nu kring HTML 5 och de möjligheter som de olika delarna i standarden kommer föra med sig. Något som är vanligt är att man gärna vill ställa HTML 5 i skarp kontrast till andra tillgängliga tekniker för att skapa rika Internetapplikationer.

Den del av HTML 5 som har lyfts fram som mest kontroversiell är <video> –elementet. Tanken är att en enhetlig standard för hur man bäddar in video i HTML ska kunna ersätta plug-ins som Flash och Silverlight för att visa videofilm i webbsidor. Det finns dock en hel del utmaningar i dagsläget: webbläsare måste inte bara stödja de filformat (container) som ljud- och videoströmmarna transporteras i – de måste också kunna koda av strömmarna beroende på hur de kodats från början. För att kunna göra det krävs att maskinen har rätt dekoder (codec) installerad. Vilket operativssystem som har vilka codecs förinstallerade som standard skiljer sig åt. Det används också olika codecs för ljud och för bild.

Lite förenklat så ser det (i skrivande stund) ut så här:

  • Firefox har stöd för Theora + Vorbis + Ogg
  • Safari, IPhone, Android och Chrome har stöd för H264+ACC+ MP4.
  • Internet Explorer saknar idag stöd för video-elementet (men har via Flash och Silverlight stöd för H264+ACC+MP4).

Det finns alltså inte i dagsläget någon enskild kombination av HTML 5-webbläsare, behållare och codec som fungerar över alla enheter och på alla plattformar. För att göra en video tillgänglig via video-elementet skulle du alltså behöva koda dina mediafiler i två olika format/containers – och dessutom behöva en ‘fallback’ till Flash eller Silverlight för att kunna spela upp filmen i Internet Explorer.
Microsoft deltar aktivt i arbetsgruppen för HTML 5 för att hitta en lösning kring codec-frågeställningarna, där det också finns oklarheter kring patentfrågor för vissa codecs som behöver redas ut.

När man diskuterar Internet Explorer i samband med HMTL 5 så är det för övrigt lätt att glömma bort att vi faktiskt har stöd för ett flertal andra HTML 5-funktioner i IE8: t.ex. DOM-lagring och AJAX-navigering – men det är ett ämne för en annan post.

Personligen så tycker jag att andra delar av HTML 5 är mer intressanta än video-elementet: t.ex. Web Sockets som ger dig en socket-liknande duplex kommunikation mellan webbläsaren och servern – och som går genom port 80/443 vilket gör att du traverserar brandväggar utan problem, snabbt – effektivt, dubbelriktat och utan HTTP-protokollets overhead.

Det här är vad jag tror (disclaimer – detta är min högst personliga reflektion och inte alls någon officiellt Microsoft-roadmap):

  • Plattformar som Silverlight kommer att fortsätta utvecklas i en takt och med en hastighet i innovationen som standardiseringen aldrig kommer att hinna med. Misstaget man gör är att man jämför HTML 5, som förhoppningsvis kan vara klart 2012, med vad som finns i Silverlight-plattformen i befintlig version. Men naturligtvis kommer Silverlight om två år innehålla en mängd nyheter som det inte kommer finnas någon motsvarighet till i HTML 5. Ett bra exempel på sådan innovationskraft är Smooth Streaming-protokollet, som mig veterligen inte har någon motsvarighet i HTML 5-specifikationen.
  • Jag är övertygad om att man kommer fortsätta hålla hårt på kravet att Silverlight ska vara plattformsöverskridande och att man ska vara en ”god citizen” i standardstödjande webbläsare. D.v.s. precis som Silverlight idag integrerar snyggt med befintlig HTML-DOM och Javascript kommer Silverlight-utvecklare kunna dra nytta av nyheterna i HTML 5 via interop mot webbläsaren.

Vad tror du?