I saggi su InterLex

OOXML: uno standard incompatibile con lo standard

InterLex n° 366, 21 gennaio 2008

Aprite un nuovo foglio sul vostro fido Excel, posizionatevi in una cella qualsiasi, digitate la formula

=GIORNO.SETTIMANA("1/1/1900")

e premete invio. Il risultato che comparirà nella cella sarà 1, il che significa che secondo Microsoft il primo gennaio del 1900 era domenica. Consultate ora un qualsiasi calendario del 1900 (se proprio non ne avete uno a portata di mano basta anche un calendario perpetuo che si rispetti) e vi accorgerete che per il resto del mondo il primo gennaio di quell'anno era invece lunedì. Poco male, potreste pensare: non sarà certo il primo (né l'ultimo…) errore fornito da un software di larga diffusione. Ebbene, siete dei poveri sciocchi e potreste presto accorgervene nel peggiore dei modi. Il colosso di Redmond sta infatti per far certificare la sua tesi nientemeno che dall'ISO, l'Organizzazione Internazionale per la Standardizzazione, ovvero proprio l'ente sovranazionale ed indipendente che cura lo sviluppo e la pubblicazione degli standard internazionali. Così quel risultato di Excel non sarà più frutto di un volgare bug ma assurgerà a livello di standard de jure, e dunque dovrà essere considerato vero e corretto per definizione; e al contrario sarà finalmente quello stupido anno 1900 rendersi colpevole di non conformità allo standard, per via di quel 29 febbraio che non c'è stato ed invece secondo Microsoft avrebbe dovuto esserci, alla faccia di Papa Gregorio e con buona pace di tutti gli astronomi vissuti negli ultimi quattro secoli.

Sembra quasi che la Microsoft si stia avviando sulla strada della Megadodo Publications del compianto Douglas Adams, ossia la casa editrice che pubblica la "Guida Galattica per autostoppisti": favoloso volume nel quale è concentrato tutto lo scibile umano e che, nonostante sia largamente apocrifa e pazzescamente imprecisa è talmente autorevole che qualora si riscontrino discrepanze tra ciò che dice la Guida e la realtà, è sicuramente la realtà ad essere sbagliata. Non ridete, purtroppo è una faccenda seria. L'unica differenza rispetto alla storia della Guida è che qui non c'è scritto da nessuna parte "Niente panico", anzi…

Ma partiamo dall'inizio. Era già da un po' di tempo che a Redmond si lavorava ad una versione "estesa e personalizzata", ossia sostanzialmente proprietaria e non-standard, del linguaggio XML (eXtensible Markup Language, che in sé è uno standard del W3C) da utilizzarsi come nuovo formato di memorizzazione per i documenti prodotti dalle più recenti versioni di Office, in sostituzione dei vecchi ed oramai ingestibili formati binari. Dopo un paio di implementazioni parziali in Excel 2000 e Word 2002, il nuovo formato vide ufficialmente la luce con la suite Office 2003 diventando noto come "Office 2003 XML format". Tuttavia nel 2004, anche a seguito delle note vicende legali che videro l'Unione Europea schierarsi contro la Microsoft per abuso di posizione dominante, molti governi e la stessa UE richiesero formalmente alla casa di Redmond di adottare per i documenti di Office un formato di registrazione che fosse non solo formalmente "aperto" ma realmente conforme ad uno standard internazionale riconosciuto, in modo da garantire l'interoperabilità completa e libera da oneri da parte di tutti gli altri pacchetti simili.

Tra le righe tale richiesta suggeriva ovviamente a Microsoft di adottare per il proprio Office il già maturo formato OpenDocument, sviluppato dal consorzio OASIS (Organization for the Advancement of Structured Information Standards) come formato aperto per il noto pacchetto OpenOffice.org. Questo era stato reso disponibile sin dal 2000 come prodotto open source sotto licenza LGPL, ed il relativo formato era già in corso di standardizzazione da parte dell'ISO come formato libero ed universale per i documenti di office automation. Ma l'Unione Europea aveva fatto i conti senza l'oste: con una mossa a sorpresa, infatti, nel novembre del 2005 la Microsoft produsse una nuova versione del suo formato proprietario, chiamandolo Open Office XML, e lo sottopose formalmente all'Ecma International affinché lo recepisse come standard europeo! Per chi non lo sapesse, la Ecma International è una organizzazione di standardizzazione europea indipendente e sostanzialmente privata, nata dalle ceneri della defunta associazione europea dei costruttori di computer (il nome deriva infatti dal precedente acronimo che stava per European Computer Manufacturers Association). Di tale organizzazione, situata a Ginevra, può far parte qualsiasi azienda commerciale appartenente al settore ICT: il suo obiettivo è favorire la definizione e la diffusione di standard tecnologici in Europa, e l'organizzazione si fa vanto di svolgere tale compito con un approccio non burocratico ma "orientato alle logiche del business", essendo essa del tutto svincolata tanto dai governi quanto dai singoli enti nazionali per la normazione.

Così come era già avvenuto in precedenza col linguaggio C#, anch'esso sviluppato da Microsoft e prontamente "standardizzato" sempre dalla stessa Ecma International, anche il formato Open Office XML (più sinteticamente chiamato OOXML) ha percorso rapidamente tutti i passaggi del processo di standardizzazione per emergere infine, nel dicembre del 2006, col nome ufficiale di Ecma 376 ed il tanto desiderato status di "standard internazionale". Diabolico Bill!

Ma il peggio deve ancora venire. Poteva essere sufficiente così, e invece no: avendoci preso gusto, e forte del "bollino blu" concesso dall'Ecma, Microsoft ha voluto intraprendere per il suo OOXML nientemeno che la strada della standardizzazione ISO, spavaldamente incurante del fatto che nel frattempo la stessa ISO aveva formalmente rilasciato come standard internazionale il concorrente (ed anche precedente) formato OpenDocument con il nome Open Document Format (ODF) e la denominazione ufficiale di ISO/IEC 26300:2006. Usando proprio l'Ecma come proponente ufficiale verso l'ISO, e sfruttando la propria potenza commerciale per esercitare una notevole pressione sui comitati nazionali di normazione tramite i suoi partner locali e le sue filiali nazionali, Microsoft è così addirittura riuscita ad ottenere da parte dell'ISO la modalità di valutazione cosiddetta "fast track", ossia "espressa", la quale consente di pervenire all'approvazione di uno standard in tempi straordinariamente ristretti rispetto alla procedura normale a patto che vi sia un consenso molto elevato da parte dei "grandi elettori" rappresentanti il consesso internazionale. L'obiettivo di Redmond era infatti quello di ottenere la proclamazione di OOXML come standard ISO entro il 2007, per bruciare così sul filo di lana lo standard concorrente.

A settembre 2007 tuttavia le aspettative di Microsoft sono andate parzialmente deluse: nella votazione tenuta in sede ISO per promuovere a "full standard" quello che ancora è solo il DIS (Draft International Standard) 29500, infatti, il necessario quorum non è stato raggiunto, anche se solo per un soffio. Alcuni rappresentanti nazionali sono infine riusciti a far prevalere, pur se in minima parte, le proprie perplessità sia sul formato in sé che sull'opportunità di approvare in sede ISO un nuovo standard sostanzialmente incompatibile con un'altro appena adottato proprio allo stesso scopo. In seguito a ciò, alla Microsoft è stato dato un certo periodo di tempo per produrre una nuova revisione dello standard (il quale già consta di oltre 6.000 pagine di documentazione!) che recepisca le richieste di modifica formulate dalle varie parti in causa. La prossima mossa di questo strano gioco si svolgerà quindi a Ginevra dal 25 al 29 febbraio di quest'anno, in un meeting nel quale Microsoft cercherà di convincere i delegati internazionali ad approvare il testo così rivisto. Se tale approvazione non dovesse avvenire, la proposta di standardizzazione si bloccherà definitivamente; in caso favorevole, invece, i singoli rappresentanti nazionali avranno trenta giorni di tempo per decidere se modificare o confermare il loro voto dello scorso settembre, e se al termine di tale periodo si raggiungerà il necessario consenso allora il formato OOXML verrà effettivamente proclamato standard internazionale col nome di ISO 29500.

Nel frattempo, approfittando di questa "pausa tecnica", nel mondo attonito si sta coagulando un forte e trasversale movimento di opposizione a tutta questa vicenda che, effettivamente, appare ai più quantomeno grottesca. Catalizzatore di questo ampio movimento è la Foundation for a Free Information Infrastructure (FFII), un'organizzazione internazionale senza scopo di lucro che da tempo si batte per creare le condizioni per un libero mercato nell'information technology rimuovendo le barriere alla competizione. (È anche per merito suo che nel 2005 l'Unione Europea ha respinto la direttiva finalizzata ad istituire la brevettabiltà del software). La FFII ha creato a tale scopo l'iniziativa denominata <NO>OOXML che ha come scopo la presentazione all'ISO di una massiccia petizione internazionale contro l'adozione del formato OOXML come standard.

Le motivazioni addotte dalla FFII per la sua opposizione sono molteplici e ben documentate, tuttavia tra di esse ne risaltano alcune particolarmente eclatanti che vale la pena di riassumere brevemente. In primo luogo, dato che già esiste lo standard ISO26300 Open Document Format (ODF), a molti sembra semplicemente scriteriata l'idea che l'ISO si stia dando tanto da fare per adottare, oltretutto a brevissima distanza, un altro standard simile ma incompatibile con esso: ne soffre sicuramente l'economia di pensiero, ma ne soffrirebbe anche il mercato che si troverebbe nella difficile situazione di decidere quale dei due effettivamente adottare nei prodotti reali. In secondo luogo, molti osservatori anche tra i più pacati hanno stigmatizzato l'arroganza della Microsoft che, pur di non essere costretta ad adottare un formato "terzo" realmente aperto, ha cercato di aggirare le restrizioni impostegli dall'Unione Europea usando l'ISO a proprio beneficio ed inducendola ad approvare come standard internazionale un suo prodotto proprietario. Sono in molti, tra l'altro, a temere che se questa approvazione andasse in porto la Microsoft ritornerebbe a detenere il monopolio di fatto sui pacchetti di office automation, perché è chiaro che a quel punto tutti gli altri sarebbero costretti ad adottare il formato da lei proposto e sul quale lei ha un ovvio vantaggio competitivo in termini di know-how e software già sviluppato. È stato anche criticato l'atteggiamento della stessa ISO, che ha accettato di attivare la procedura di recepimento rapido per una proposta di standard che non è stata sviluppata mettendo a fattor comune le esperienze e le necessità di tutte le parti potenzialmente interessate, e soprattutto che non va beneficio dell'intera comunità internazionale ma fa essenzialmente gli interessi di un solo attore.

Da un punto di vista più tecnico, molti osservatori hanno rilevato che le specifiche prodotte da Microsoft sono, nella migliore delle ipotesi, incomplete ed ambigue in più parti. D'altronde la procedura "fast track" non ha dato agli stessi delegati il tempo di studiare a fondo le oltre seimila pagine di documentazione, così il rischio che in esse vi siano errori od incongruenze che potrebbero minare alla base le implementazioni di OOXML da parte di terzi è realmente elevato. Alcuni casi specifici sono già stati identificati e resi noti: ad esempio per quanto riguarda l'implementazione di alcune caratteristiche di retrocompatibilità verso la semantica di Word95 e Word97, che sono citate ma non descritte, o per quanto riguarda il fatto che molti acronimi o termini specifici sono utilizzati con descrizioni e addirittura significati diversi in parti differenti del documento. Tra l'altro oltre il dieci per cento degli esempi riportati nella documentazione non supera i test di validazione dell'XML come invece dovrebbe.

Si raggiungono tuttavia le vette del paradosso quando si scopre che il formato OOXML viola platealmente altri e ben più consolidati standard internazionali prescritti della stessa ISO: ad esempio le date vengono codificate e rappresentate in modo non conforme a quanto stabilito dallo standard ISO 8601, i codici per la localizzazione linguistica e culturale non rispettano le indicazioni dello standard ISO 639 e le funzioni di crittografia non implementano le raccomandazioni dello standard ISO/IEC 10118-3 per quanto riguarda l'uso degli hash crittografici. La ciliegina sulla torta è comunque lo sconcertante fatto che, col preciso scopo di mantenere la retrocompatibilità con un noto bug che ha afflitto tutte le versioni di Excel, la rappresentazione delle date in OOXML assume esplicitamente che l'anno 1900 sia stato bisestile mentre invece non lo era: da ciò discendono diverse iatture quali un'implicita ambiguità sul computo delle date (il cui conteggio secondo Microsoft inizia appunto il 1/1/1900), l'impossibilità di rappresentare date dei secoli precedenti al XX, la presenza di un fantomatico 29 febbraio 1900 col conseguente errore sia nel conteggio dei giorni successivi sia nell'attribuzione del corretto giorno della settimana nei giorni precedenti. Come avviene per la Guida Galattica, dunque, Microsoft sta facendo certificare dall'ISO come autentica la propria visione del tempo e del calendario, così che sarà la natura ad essere accusata di errore in caso di conflitto.

Alla fine di tutto, comunque, sorge spontanea una domanda. Anche facendo finta che questa proposta sia del tutto disinteressata e non faccia invece smaccatamente gli interessi commerciali della Microsoft, che lo standard proposto sia davvero aperto ed interoperabile, che tutti riusciranno davvero ad implementarlo, che sia inappuntabile sotto il profilo tecnico… ma abbiamo davvero bisogno di un nuovo standard internazionale per i documenti d'ufficio quando da appena un anno ce n'è già uno tutto sommato più che dignitoso e perfettamente adatto allo scopo? Andrew S. Tanenbaum, straordinario professore di informatica ed autore di fondamentali libri di testo sui sistemi operativi, disse una volta con deliziosa ironia che la cosa bella degli standard è proprio il fatto che ce ne sono in giro tantissimi tra cui poter scegliere. Ecco, se ognuno può scegliere di adottare lo standard che gli pare per fare una medesima cosa, va a pallino lo scopo stesso della standardizzazione: ossia l'interoperabilità, la possibilità di usare una lingua franca, ma anche l'abbattimento degli iniqui vantaggi competitivi basati sulle privative industriali.

Un'ultima considerazione. Stuprare gli standard a proprio vantaggio è una politica scorretta ma ben nota e assai utilizzata da molti, contro la quale il mercato ha anche iniziato a sviluppare efficaci anticorpi; stuprare le organizzazioni di standardizzazione, sovvertendo il processo stesso di adozione degli standard, è invece un'interessante ed inquietante innovazione… che speriamo possa essere fermata prima che finisca per affermarsi come una legittima pratica commerciale di questo strano ed angosciante millennio.

Saggio pubblicato su InterLex n° 366 del 21 gennaio 2008 (Anno XII)
Copyright © 2008, Corrado Giustozzi. Tutti i diritti riservati.

Ultima modifica: 31 maggio 2009
Visitatori dal 6 maggio 2003: 115,590

Torna alla Pagina dei saggi pubblicati su InterLex
Vai alla Pagina dei Commenti

Copyright © 1995-2012 Corrado Giustozzi