En första titt på Internet Explorer 9
Microsoft har äntligen släppt en förhandsversion av sitt efterlängtade Internet Explorer 9. Webben har utvecklats i en väldigt snabb takt de senaste åren tack vare den konkurrens som finns bland webbläsarna.
Under 90-talet kunde vi se hur Internet Explorer och Netscape slogs om att vara den bästa webbläsaren, vilket gjorde att vi bland annat kunde se en ny version av Internet Explorer i snitt en gång per år:
- 1.0 – 1995
- 2.0 – 1995
- 3.0 – 1996
- 4.0 – 1997
- 5.0 – 1999
- 5.5 – 2000
- 6.0 – 2001
Men vad hände sedan? Efter att Netscape förlorade kampen om webbläsarna så var Internet Explorer utan konkurrens på en väldigt stor marknad. På grund av det så kom inga nya versioner förrän 7.0 släpptes 2006.
Internet Explorer 6 fungerade tillräckligt bra för många, och då det inte fanns något bättre så utvecklades system anpassade för just den webbläsaren.
Under tiden så fick dock uppstickare som Firefox möjlighet att ta sig in på marknaden. Genom att erbjuda bättre stöd för standarder, samt en snabbare upplevelse så tog Firefox stora marknadsandelar från Internet Explorer och har idag ungefär en fjärdedel av marknaden. Även andra webbläsare har passat på att ta sig in på marknaden med samma argument.
Då Internet Explorer fortfarande var (och är) den absolut mest använda webbläsaren så har många utvecklare beklagat sig över bristen på standarder. På grund av det så infördes ett mycket bättre stöd för de vanligaste standarderna, som CSS 2.1, i Internet Explorer 8.
Testa Internet Explorer 9 idag
Det är möjligt att redan idag testa Internet Explorer 9 om man kör Windows Vista eller Windows 7.
Genom att gå in på nedanstående sida så finns möjligheten att ladda hem och köra en tidig version av det:
http://ie.microsoft.com/testdrive/
Förhandsversionen av Internet Explorer 9 installeras sida vid sida med din befintliga installation och kan enkelt avinstalleras, så du kan fortfarande använda Internet Explorer 8 precis som tidigare.
När programmet är installerat och startat så får vi upp det här:
Det är ett väldigt enkelt och avskalat gränssnitt. Vi saknar i stort sett all funktionalitet som Internet Explorer annars har. Anledningen till detta är för att det är just renderingsmotorn (Trident) som visas upp.
På sidan som kommer upp så kan vi köra olika tester för att se hur de hanteras av Internet Explorer 9
För att gå till någon annan sida så kan vi antingen klicka på Page -> Open, eller Ctrl+O. Då kan vi skriva in adressen till valfri sida för att se hur den ser ut i Internet Explorer 9.
Då det mesta i Internet Explorer 9 renderas med hjälp av DirectX så får vi en fantastiskt snygg rendering av alla sidor.
Genom att trycka på Ctrl, + så kan vi Zooma in riktigt långt.
För att återställa Zoomen så får vi trycka på Ctrl + 0.
Om vi vill jämföra utseendet mellan Internet Explorer 5, 7, 8 och 9 så kan vi klicka på Debug -> Version i menyn. Det gör det enkelt att se så att sidan alltid ser likadan ut.
Vill vi få fram Developer Tools, vilket ingår i Internet Explorer sedan version 8 så kan vi klicka på Debug -> Developer Tools i menyn eller F12. Developer Tools för Internet Explorer 9 innehåller bland annat ny funktionalitet för att se hur mycket som har förts över nätverket.
Vi har här även en detaljerad vy som ger väldigt bra information om vad som har skickats fram och tillbaka mellan klient och server.
Framtiden för webbutveckling
Många utvecklare älskar att syssla med sådant som är det absolut senaste, gärna även sådant som inte finns än. Ingen som arbetar med webbutveckling kan ha missat HTML 5 och CSS 3, vilket är två specifikationer (egentligen samlingar av specifikationer) som fortfarande bara är i ”Working draft”-stadiet, vilket betyder att det är långt från klart, och mycket väl kan förändras.
Det här är dock två standarder som krävs för att få webbutvecklingen in på 2000-talet. När vi surfar runt på Internet idag så kan vi se att media och dynamiska webbplatser är något väldigt vanligt. När arbetet med HTML 4 och CSS 2 påbörjades så satt många fortfarande med modem, vilket omöjliggjorde sådant som Youtube. Idag ser det helt annorlunda ut, och vi har till och med fullfjädrade webbläsare och snabba Turbo 3G-uppkopplingar på våra mobiltelefoner.
För att vi ska kunna dra nytta av detta så krävs det att standarderna uppdateras, så att vi kan se på videon eller ta del av det rika gränssnittet oavsett om vi sitter vid datorn eller om vi sitter i tunnelbanan med mobiltelefonen.
Tack vare att många verkligen vill ha det här så har standarden gått mycket fortare framåt. Vi kan bland annat se hur Microsoft har gått med i arbetsgrupperna för att ta fram standarderna, så att vi användare och utvecklare skall kunna ta del av detta så snart som möjligt (http://blogs.msdn.com/ie/archive/tags/W3C/default.aspx).
Stöd för nya standarder
I och med släppet av den första publika releasen av Internet Explorer 9 så har Internet Explorer fått ett utökat stöd för dessa standarder. Stödet för både HTML 5 och CSS 3 har utvecklats markant. Utöver detta så kan vi även se stöd för helt nya standarder som Internet Explorer aldrig tidigare har haft stöd för, som SVG.
Det är många som tidigare har trott att Microsoft inte implementerade stöd för SVG på grund av att det används för att rendera vektorbaserad grafik, vilket skulle kunna konkurrera med Silverlight. Av samma anledning så har det ryktats om att Microsoft inte vill implementera stöd för video-elementen i HTML, vilka ger stöd för video direkt i webbläsaren utan att behöva tredjepartsplugins.
Då Internet Explorer är den mest använda webbläsaren på marknaden med över 50% av alla användare så är det en stor nyhet för alla webbutvecklare att stödet byggs ut så pass mycket.
Hur står sig Internet Explorer 9 mot konkurrenterna?
Värt att påpeka är att Internet Explorer 9 just har kommit i sin första förhandsversion. Det betyder att mycket kan komma att ändras fram till släppet, och att den version som nu finns, finns av den anledningen att vi utvecklare skall kunna testa hur väl implementeringarna fungerar i Internet Explorer 9, men även hur våra befintliga webbplatser ser ut så att vi skall kunna förbereda oss. Inför släppet av Internet Explorer 8 så var det många webbplatser som såg felaktiga ut, vilket gjorde att Microsoft var tvungna att ge stöd även för äldre versioner av Trident (renderingsmotorn) i Internet Explorer 8. Detta gjorde det möjligt att rendera sidorna som Internet Explorer 7, vilket åtgärdar problemet.
I den förhandsversion av Internet Explorer 9 som nu finns tillgänglig så finns möjligheten att använda samma renderingsmotorer som i Internet Explorer 8, men även möjligheten att rendera som Internet Explorer 9.
Att jämföra två webbläsare och säga vilken som är bäst är i stort sett omöjligt att göra. Beroende på vilken del av webbläsaren man vill testa så får man använda olika verktyg.
Det finns ett verktyg som kallas Acid 3. Det tar upp ett visst antal tester inom olika standarder som CSS, JavaScript, SVG och annat. Internet Explorer 9 får i skrivande stund 55/100 i det testet:
Det finns dock väldigt många sätt att testa det på, så för att underlätta så delar även jag upp det i olika steg här.
JavaScript
JavaScript, ECMA-262, ISO/IEC 16262, ECMAScript eller vad man nu vill kalla det (kärt barn har många namn) är en gammal standard som från början utvecklades av Netscape för 15 år sedan som ett steg i webbläsarkriget. Det var ett sätt att få webbsidorna mer dynamiska på, vilket de utan tvekan har lyckats med.
Det finns väldigt få webbplatser idag som inte använder sig utav JavaScript. JavaScript är ett språk som dels är ett av de absolut mest använda i världen, men samtidigt ett av de mest hatade. Anledningen till att väldigt många försöker hålla sig borta från JavaScript är för att det är så pass jobbigt att anpassa JavaScripten för olika webbläsare. Internet Explorer implementerade en egen tolkning av JavaScript i Internet Explorer 3, vilket de sedan har byggt vidare på. Denna tolkning har aldrig varit i synk med den andra varianten, vilket har gjort att många utvecklare har suttit och skrivit olika villkor baserat på vilken webbläsare som har kört det aktuella scriptet.
Efter att Ajax blev stort så har dock JavaScript-användandet växt storartat, och det är numera en väldigt viktig del i varje webbutvecklares verktygslåda. Ramverk som jQuery, Prototype, MooTools och andra har även betytt väldigt mycket för utvecklare då de innehåller funktionalitet som gör att man som utvecklare kan fokusera på att vara produktiva, istället för att spendera tid med att testa olika scripts i olika webbläsare.
Internet Explorer 9 har dock en bättre implementering av ECMAScript, och vi kan i och med denna version använda väldigt mycket kod utan att behöva bry oss om vilken webbläsare som används.
Ett annat problem på senare tid är att det tar för lång tid att köra JavaScript. I takt med att webbläsare blir mer avancerade så ställer utvecklare högre krav på att snabbt kunna köra avancerade scripts. I Internet Explorer 9 och den nya JavaScript-motorn ”Chakra” så har man löst detta genom att kompilera och köra JavaScript på en annan processorkärna om en sådan finns tillgänglig. Detta gör att alla JavaScript som tidigare har tagit väldigt lång tid att köra, nu istället kan köras mycket snabbare.
För att testa hastigheten i olika JavaScript-motorer så används ofta ett test kallat ”Sunspider”. Det gör olika tester och räknar sedan ut tiden det tog att köra dessa tester.
I den här bilden som är tagen från Microsoft så kan vi se att skillnaden mellan IE 8 (till vänster) och IE 9 (grön stapel i mitten) är kolossal! Skillnaden är även relativt stor mellan demon från PDC 2009 och Mix 2010, vilket är ett tecken på att de fortfarande arbetar med hastigheten.
HTML 5
HTML 4 blev en W3C-rekommendation 1999. Det är alltså över 10 år sedan den senaste HTML-standarden blev färdig. Under den tiden så har väldigt mycket förändrats, och den synen vi har på Internet har förändrats från att vara något som kunde användas för att visa vanliga dokument till att bli något dynamiskt och som gör det möjligt att visa videos, flytta runt element och helt enkelt ge oss en väldigt rik upplevelse.
Vi vill numer till exempel kunna lagra stora mängder data i webbläsaren för offline-bruk. 1999 var cookies perfekt, men nu för tiden så behöver vi mer än så. Av den anledningen så ingår DOM Storage och andra API:er i HTML 5. Använder du idag Internet Explorer 8 så kan du ta del av detta.
Vad gäller media så var Java-applets vanligt på webbsidor. De användes dock inte till att visa videos och annat då bandbredden var alldeles för dålig. Idag sitter vi med blixtsnabba uppkopplingar och kan utan problem streama media direkt på Internet. HTML 5 ger ett nytt video-element samt ett audio-element, vilka kan användas för att spela både video och ljud över Internet, utan att behöva blanda in tredjepartsprodukter.
Annan funktionalitet som finns under HTML 5 är Canvas och SVG. Med dessa kan man rendera vektografik rent programmatiskt direkt i webbläsaren.
HTML 5 definierar alltså både API:er som vi kan anropa med JavaScript, samt element som kan användas för att ge ett rikare gränssnitt.
CSS
Den versionen av CSS som är aktuell för de flesta nu är CSS 2.1. Vad många inte vet är att den versionen fortfarande inte är en rekommendation, utan fortfarande endast en kandidat. Samtidigt som den är i slutfasen så talas det väldigt mycket om CSS 3, vilket är versionen efter.
Anledningen till att det talas så mycket om CSS 3 är då det har funktionalitet som rundade hörn på element, genomskinliga element, stöd för att dela upp texter i flera kolumner, nya selektorer, möjlighet att ge skuggor på element, ha bilder för ramar och mycket annat.
Det blir med CSS 3 mycket lättare att ge snygga effekter på sin hemsida utan att behöva lägga till allt i Photoshop. Det går nu att lösa med så lite som en extra rad i CSS-filen.
CSS 3 är precis som HTML 5 till största delen en Working Draft, vilket betyder att mycket kan ändras.
Internet Explorer har mycket större stöd för CSS 3 än tidigare, och klarar 578/578 test på css3.info (http://www.css3.info/internet-explorer-9-platform-preview-released/).
Testa nya funktionaliteten i Internet Explorer 9
Samtidigt som släppet av förhandsgranskningen av Internet Explorer 9 släpptes även ett antal olika tester som visar hur väl de olika funktionerna fungerar i Internet Explorer 9.
De olika testerna fokuserar på tre olika områden: hastighet, HTML 5 och grafik.
Testerna finns tillgängliga här:
http://ie.microsoft.com/testdrive
Hur går jag vidare nu?
Om du är ansvarig för en eller flera webbsajter så bör du testa dessa i Internet Explorer 9 för att se så att allt ser bra ut. Om något är fel så kan det bero på två saker – antingen så är sidan inte kodad enligt W3C-standarder eller så beror det på en bugg i Internet Explorer 9.
Tidigare versioner av Internet Explorer kan ha visat detta som du har velat, men ändå felaktigt då de kan ha tolkat standarden fel. För att åtgärda det så kan du antingen se till att fixa till felet, eller helt enkelt tvinga Internet Explorer 9 att rendera sidan som tidigare IE-versioner har gjort.
Om det är en bugg i Internet Explorer 9 så bör du absolut rapportera in detta. Vi vill alla ha en så felfri Internet Explorer som möjligt, så det är viktigt att alla buggar rapporteras in så fort som möjligt.
Även om allt fungerar bra i den här förhandsversionen av Internet Explorer 9 så bör du komma ihåg att testa sidorna även i framtida släpp av Internet Explorer 9 då mycket kan ändras. Det kommer att släppas en version var åttonde vecka, så se till att ha koll på släppen och testa allt ordentligt varje gång.
Men jag sitter med Windows XP och Internet Explorer 6, vad är fel med det?
Både Windows XP och Internet Explorer 6 saknar stora säkerhetsfunktioner som har implementerats först i senare versioner.
Om du kör Internet Explorer 6 eller 7 så bör du absolut fokusera på att uppgradera till Internet Explorer 8. Många av de säkerhetshål som drabbar Internet Explorer är riktade mot just dessa två, då Internet Explorer 8 har mycket inbyggd funktionalitet för att skydda användaren mot dessa hot.
Du gör även alla webbutvecklare runtom en stor tjänst genom att uppgradera, då de äldre versionerna har ett riktigt dåligt stöd för standarder, vilket håller tillbaka utvecklingen.