30 augusti 2007

Syftet med standardisering

Jag vill börja med att inleda detta inlägg med ett tack till Microsoft, som under veckan övertygade mig att skriva det inlägg om den föreslagna OOXML-standarden som jag gått och klurat på över sommaren. Eftersom mitt liv är hyfsat uppbokat för tillfället, men när Microsoft beter sig som de gjorde i veckan har jag inte direkt annat val än att börja knappa på tangentbordet. Jag lämnar frågan om det Microsoft gjorde var etiskt eller inte, och även frågan om SIS borde ändra rutiner (det framstår som självklart att det behövs - att de inte havererat tidigare antar jag beror på att det sällan är som standarder är sådant politiskt sprängstoff). Istället kommer jag koncentrera mig på invändningarna till att låta OOXML bli en standard.

Det finns flera olika argument i frågan. Några tycker jag är mer eller mindre irrelevanta, även om det ofta är de som andra motståndare (exempelvis NoOOXML) lyfter fram i debatten:

  • Det finns redan en standard för filer från kontorsapplikationer. Detta är inte första gången det ligger ett förslag på att skapa en standard som blir redundant - det har hänt många gånger förr. Om man tar något så klassiskt som gängor, skruvar och muttrar, så finns det en hel uppsättning av standarder att välja på. Detta är en följd av tidigare standardisering, dels av geografiska skillnader (metriska gängor i Europa, tumgängor i USA), samt olika syften med dem. Den tydligaste skillnaden är kanske i vilka skallar skruvar har: det finns allt från sexkantskalle, till spårskruv, torx, insex. Allra intressantast är Philips- och Pozidriv-skallar. Dessa är närmast identiska krysskruvsvarianter (ett vanligt sätt att förstöra en skruvmejsel är att välja fel av dem). Det är alldeles uppenbart att det inom andra områden där standardisering är långt starkare än inom datortekniken, ser man inte några större problem med att ha konkurrerande standarder.


  • Tveksamheter runt licensiering av patent. Licensieringen runt de patent som är applicerbara på OOXML är tvkesam. Även om vi inte har mjukvarupatent i Europa är detta ytterst intressant för den som vill implementera standarden i exempelvis USA. Man kritiserar OOXML, på grund av patentoklarheterna, för att inte vara en s.k. öppen standard, som kan implementeras av vem som helst utan dolda kostnader. Problemet med det här argumentet är bara, att ISO aldrig påstått sig vara en organisation som publicerar öppna standarder. Att så många av ISO:s standarder i praktiken varit det beror på andra orsaker, nämligen att det är enklare att få folk att följa en standard om man inte behöver betala för att använda den.


  • Standarden skapades av en enda organisation (Microsoft) istället för en större samarbetsorganisation.
  • Inte heller detta argument är särskilt relevant. Flera andra enskilda organisationer har legat bakom andra stnndarder helt på egen hand. Detta är inte per automatik nödvändigtvis en dålig sak - ju fler parter, desto större är risken för att man råkar ut för s.k. "Design by committee". Flera tidigare standarder har tagits fram av enskilda företag - som exempel kan nämnas PDF (Adobe) eller för den delen till och med programmeringsspråket C# (som Microsoft själva utvecklade). Bägge har erkänts av officiella standardorganisationer efter att de utvecklades, utan att det uppmärksammades stort på samma sätt som för OOXML.

  • OOXML är inte kompatibelt med andra standarder. Vid vissa undantagstillfällen kan det faktiskt vara lägligt att ha en standard som inte är kompatibel med andra standarder. Den äldre standarden kanske helt enkelt var väldigt dålig. Som alltid när det gäller regler för hur man designar teknik så finns det tillfällen då man bör göra på ett annat sätt än det brukliga. Men det är undantagsfall. Att undantagsfallen är så vanligt förekommande i OOXML är inte ett skäl att förkasta standarden i sig. De är snarare ett symptom på andra problem med filformatet (se nedan).


  • ODF, den tidigare ISO-standarden, har också åtskilliga brister. Detta säger jag inte emot. Det tydligaste felet är att formlerna i kalkylbladen inte är definierade (än). Dock kan jag bara konstatera att även om ODF inte borde ha blivit en standard, innebär det inte att OOXML också bör bli det. Två fel gör inte ett rätt.


Med så många skrotade argument, innebär det då att jag tycker att OOXML verkar vara ett bra förslag på en standard? Nej! Det argument som finns kvar, är så kraftfullt att det på egen hand lägger krokben för förslaget. Men för att argumentet säkerligen ska förstås, tar jag en detour för att förklara varför vi överhuvudtaget har standardisering från första början, med hjälp av ett citat från Wikipedia:

Standardization means: "the developement and implementation of concepts doctrines,produces and designs to achieve and maintain the required levels of compatibility intechangeability or commonality in the operational,procedural material, technical and administrative fields to attain interoperability."


Kort sagt, syftet med standardisering är främst att göra det lättare att få produkter från olika tillverkare att fungera ihop. När standardisering först slog igenom var det mycket konkret - när industrialiseringen kom var det inte längre möjligt att leta reda på smeden som smitt en skruv för att få tillverkat en passande mutter. Därför skapade man standardiserade måttserier - och det räckte att gå till närmsta järnbutik och köpa en mutter.

Ytterligare en förväntning på en standard är att den är tekniskt välbyggd. När hela samhället ska använda endast en variant av en viss teknik, ska det naturligtvis vara en väldesignad sådan och inte ett hafsverk. Visserligen har många undermåliga standarder sluppit igenom standardiseringsprocesserna, men syftet med dem har ändå alltid varit att ta fram tekniskt goda dokument.

Det är just här argumenten mot OOXML som internationell standard är som starkast. Det är helt enkelt inte en väldesignad eller välskriven standard. Den är över 6 000 sidor lång. Även om standarder ofta blir långa för att kunna täcka alla tekniska detaljer korrekt, är detta exceptionellt mycket. Normalt brukar högst tredjedelen räcka, och i annat fall försöker man dela standarden i delstandarder.

Dessutom finns det mängder med tekniska invändningar, jag nämner här bara några:



Det finns en lång lista med ytterligare problem på Groklaw, ytterligare en här, och säkert ännu fler som jag missat på andra platser på nätet.

Kort sagt, Microsoft borde inte få igenom sitt förslag med mindre än att det förbättras drastiskt. Det vill Microsoft naturligtvis inte göra - det är redan en del av Microsoft Office 2007 - som redan säljs på marknaden. Varför bryr man sig då om att överhuvudtaget göra som man gör? Jo, allt fler myndigheter börjar fundera på över hur elektroniska dokument ska kunna långtidsarkiveras, och har kommit till slutsatsen att man egentligen bara borde använda standardiserade filformat, så att filerna ska kunna gå att läsa även om 50 år (när förmodligen Microsoft Word, i alla fall i dagens skepnad, är historia sedan länge).

Det finns ett uppenbart incitament för Microsoft att skaffa en standard som beskriver filformaten. Samtidigt finns det också ett mycket tydligt incitament att inte göra det: man har sedan länge skaffat sig en total dominans på kontorssvitsmarknaden just genom att hålla sin filformat stängda. Åtskilliga konkurrenter, exempelvis Lotus 1-2-3 och WordPerfect har i praktiken försvunnit från marknaden eftersom de inte kunnat hantera filformatet hos Microsoft Word.

Kort sagt, man vill äta kakan och ändå ha den kvar. Enda lösningen på den gordiska knuten är att standardisera formatet, men att göra standarden så ofullständig och svårförståelig att det i praktiken inte är möjligt att skapa alternativa implementationer av den. Av vad som kan läsas i förslaget tycks detta inte ha varit särskilt svårt - mycket av problemen med OOXML är baserade på det enkla faktum att formatet helt enkelt inte har getts det designarbete som skulle krävas för att göra det till en värdig internationell standard.

Jag vill avsluta mitt inlägg med att länka till namninsamlingen i frågan. Även om jag inte håller med riktigt alla argument så är jag enig om åsikten - OOXML borde inte tillåtas som internationell standard, i varje fall inte i sitt nuvarande tillstånd.

Mer läsning om händelserna just i Sverige finns på denna länk.

1 kommentar:

Andreas sa...

Utmärkt sammanfattning. Jag läste "OOXML - Designed for failure" tidigare idag, och det var skrämmande. Jag förstår Microsoft ur ett affärsmässigt perspektiv, men i alla andra avseenden skiter de i det blå skåpet - och halva världen står i kö för att få slicka...