From 9507e80eae80b11ebdb26c3e44863c70134e2b3c Mon Sep 17 00:00:00 2001 From: fortinjf Date: Fri, 20 Jul 2007 21:47:01 +0000 Subject: [PATCH] Pourquoi OOXML c'est l'incarnation du mal, corrections, bibliographies, qq propositions, etc git-svn-id: file:///home/matteo/Downloads/gna/svn/gulum@14 e86ba84a-1b32-0410-87b2-c3a91cda2950 --- argumentaire_faecum/Formats_ouverts.tex | 86 ++++++++++++++++---- argumentaire_faecum/argumentaire_faecum.tex | 2 +- argumentaire_faecum/images/word2007spec.jpg | Bin 0 -> 15796 bytes argumentaire_faecum/references.bib | 49 +++++++++++ argumentaire_faecum/retrocession.tex | 14 ++-- 5 files changed, 124 insertions(+), 27 deletions(-) create mode 100644 argumentaire_faecum/images/word2007spec.jpg diff --git a/argumentaire_faecum/Formats_ouverts.tex b/argumentaire_faecum/Formats_ouverts.tex index c6e290d..d84be6d 100644 --- a/argumentaire_faecum/Formats_ouverts.tex +++ b/argumentaire_faecum/Formats_ouverts.tex @@ -1,11 +1,11 @@ -\newcommand{\mso}{\textsc{Microsoft Office}} -%%% note de jeff: besoin d'un module pour convertir les " " en « +\newcommand{\mso}{\textsc{Microsoft\textregistered Office\texttrademark}} \section{Formats ouverts} \subsection{Définition d'un format} -%besoin d'une commande pour les citations en retrait? -"Le format des données est la manière utilisée en informatique pour représenter des données sous forme de nombres binaires. C'est une convention (éventuellement normalisée) utilisée pour représenter des données, soit des informations représentant un texte, une page, une image, un son, un fichier exécutable, etc. Lorsque ces données sont stockées dans un fichier, on parle de format de fichier. Une telle convention permet d'échanger des données entre divers programmes informatiques ou logiciels, soit par une connexion directe soit par l'intermédiaire d'un fichier. On appelle interopérabilité cette possibilité d'échanger des données entre différents logiciels." -\cite{http://fr.wikipedia.org/wiki/Format_de_données} +Selon Wikipédia: +\begin{quote} + \og Le format des données est la manière utilisée en informatique pour représenter des données sous forme de nombres binaires. C'est une convention (éventuellement normalisée) utilisée pour représenter des données, soit des informations représentant un texte, une page, une image, un son, un fichier exécutable, etc. Lorsque ces données sont stockées dans un fichier, on parle de format de fichier. Une telle convention permet d'échanger des données entre divers programmes informatiques ou logiciels, soit par une connexion directe soit par l'intermédiaire d'un fichier. On appelle interopérabilité cette possibilité d'échanger des données entre différents logiciels. \fg \cite{WIK_format} +\end{quote} %Qu'est-ce que qu'un format ouvert \subsection{Qu'est-ce qu'un format ouvert?} @@ -17,20 +17,17 @@ Ainsi, quiconque peut librement étudier le format, et bâtir des logiciels enti %Pourquoi c'est bien et pourquoi un format fermé c'est l'incarnation numérique du mal \subsection{Pourquoi utiliser les formats ouverts?} -Les formats ouverts permettent donc de mettre fin aux "guerres de secrets" entre les concepteurs de logiciels (cherchant à obscurcir leurs formats pour s'assurer que seuls \textit{leurs} logiciels puissent les décoder correctement). +Les formats ouverts permettent donc de mettre fin aux \og guerres de secrets \fg entre les concepteurs de logiciels (cherchant à obscurcir leurs formats pour s'assurer que seuls \textit{leurs} logiciels puissent les décoder correctement). + Ceci a pour effet de promouvoir la \textit{réelle innovation}. Effectivement, les formats ouverts changent toute la dynamique: les logiciels, pouvant librement échanger l'information, doivent maintenant se faire concurrence au niveau de la qualité du logiciel en tant que tel. -\subsubsection{Choix vs "vendor lock-in"} -Du coup, le citoyen ne se voit plus obligé d'acheter un logiciel particulier parce que "c'est ce que tout le monde utilise à l'université", mais parce que le logiciel est \textbf{adapté à ses besoins}. Il peut réellement baser son choix sur le coût du logiciel, ses fonctionnalités, etc. +\subsubsection{Choix vs \og vendor lock-in \fg} +Du coup, le citoyen ne se voit plus obligé d'acheter un logiciel particulier parce que \og c'est ce que tout le monde utilise à l'université \fg , mais parce que le logiciel est \textbf{adapté à ses besoins}. Il peut réellement baser son choix sur le coût du logiciel, ses fonctionnalités, etc. -Un exemple pour illustrer cette situation serait les formats utilisés par \mso{} (notamment .doc, .xls et .ppt). Ces formats sont propriétaires (fermés) et jalousement gardés par Microsoft. Personne d'autre que Microsoft ne peut savoir \textit{exactement} comment fonctionne l'ensemble de ces formats, et les consommateurs sont donc littéralement "enfermés" dans ces formats. Bref, le but de la manoeuvre est de créer chez, les utilisateurs de \mso{}, une crainte d'incompatibilité avec les autres logiciels. Ce phénomène a largement été étudié et est connu sous le terme anglais "vendor lock-in". +Un exemple pour illustrer cette situation serait les formats utilisés par \mso{} (notamment .doc, .xls et .ppt). Ces formats sont propriétaires (fermés) et jalousement gardés par Microsoft. Personne d'autre que Microsoft ne peut savoir \textit{exactement} comment fonctionne l'ensemble de ces formats, et les consommateurs sont donc littéralement \og enfermés \fg dans ces formats. Bref, le but de la manoeuvre est de créer chez, les utilisateurs de \mso{}, une crainte d'incompatibilité avec les autres logiciels. Ce phénomène a largement été étudié et est connu sous le terme anglais \og vendor lock-in \fg . -À l'opposé, dans l'éventualité où \mso{} utilisait un format entièrement ouvert et libre, le consommateur pourrait choisir un logiciel à prix compétitif, ou \mso{} parce qu'il "aime particulièrement l'Assistant Office" et non pas "parce que ses professeurs utilisent \mso{}" - -\subsubsection{Pourquoi pas "OpenXML" de Microsoft Office 2007?} -à remplir. -% j'aurais besoin de la contribution de quelqu'un pour cette section là, je ne me sens pas trop connaissant sur le sujet +À l'opposé, dans l'éventualité où \mso{} utilisait un format entièrement ouvert et libre, le consommateur pourrait choisir un logiciel à prix compétitif, ou \mso{} parce qu'il \og aime particulièrement l'Assistant Office \fg et non pas \og parce que ses professeurs utilisent \mso{} \fg \subsubsection{Indépendance et longévité} Comme n'importe qui est en mesure de concevoir des logiciels conformes à un format ouvert, \textbf{l'utilisation de ce format à des fins d'archive est un choix judicieux}. Il est implicitement garanti qu'il y aura toujours des logiciels en mesure de le manipuler adéquatement, même si le format a été lancé par une compagnie défunte. @@ -39,18 +36,65 @@ Comme n'importe qui est en mesure de concevoir des logiciels conformes à un for \textit{Transparence} et \textit{intégrité} sont des mots qui devraient fondamentalement être associés au secteur de l'éducation, et au gouvernement en général. Parmi les nombreuses raisons pour lesquelles les formats ouverts devraient être promus et utilisés par ces derniers, il y a: \begin{itemize} \item l'indépendance d'une compagnie par rapport à l'accès aux documents créés et à leur échange - \item l'assurance de pouvoir accéder aisément à ces données, même dans 100 ans (il est difficile d'en faire autant avec un format comme le ".doc" changeant à chaque version de \mso{}!) + \item l'assurance de pouvoir accéder aisément à ces données, même dans 100 ans (il est difficile d'en faire autant avec un format comme le \og .doc \fg changeant à chaque version de \mso{}!) \item garantir l'accès éternel de ces documents aux citoyens \item ne pas exercer de discrimination monétaire (actuellement, seuls ceux pouvant s'offrir un logiciel coûtant plusieurs centaines de dollars peuvent consulter des documents créés par \mso{}) \end{itemize} + +\subsection{Pourquoi pas \og Office OpenXML \fg de \mso{} 2007?}% j'aurais besoin de la contribution de quelqu'un pour cette section là, je ne me sens pas trop connaissant sur le sujet +Les raisons de fuir le nouveau format OOXML (Office Open XML, à ne pas comfondre avec OpenDocument ou OpenOffice) sont nombreuses, au point où elles pourraient faire l'objet d'un argumentaire entier. Pour des raisons de simplicité et de concision, nous ne mentionnerons que quelques points saillants sous forme simplifiée. + +\subsubsection{OOXML n'est pas réellement ouvert} +Contrairement au format OpenDocument (qui a été ratifié comme le standard ISO/IEC 26300:2006), le format Office OpenXML n'est qu'une tactique publicitaire de Microsoft pour tenter de conserver ses contrats gouvernementaux en se proclamant \og ouvert \fg tout en s'assurant d'être les seuls à être réellement en mesure d'utiliser le format à sa pleine capacité. + +Notamment, de nombreuses \og fonctions \fg ne sont que des références non documentées vers des produits Microsoft antérieurs: +\begin{itemize} + \item autoSpaceLikeWord95 (spécifier les espaces \og comme Word 95 \fg , volume 4, section 2.15.3.6) + \item lineWrapLikeWord6 (retours à la ligne \og comme Word 6 \fg , volume 4, section 2.15.3.31) + \item useWord2002TableStyleRules (tableaux \og comme Word 2002 \fg , volume 4, section 2.15.3.6) + \item useWord97LineBreakRules (\og retours à la ligne de Word 97 \fg , volume 4, section 2.15.3.6) +\end{itemize} +Ces fonctions ne font donc que dire au lecteur \og vous saurez ce que ça fait si vous détenez la clé du fonctionnement de Microsoft Word 6/95/97/2002/etc \fg . Évidemment, personne sauf Microsoft ne sait comment ça marche! Ce genre de \og fausse documentation \fg est un exemple flagrant du type d'\og ouverture \fg dont Microsoft fait preuve. + + +\subsubsection{6039 pages} +La \og spécification \fg (description du fonctionnement du format) d'OOXML est répartie sur plusieurs livres, totalisant plus de six mille pages, ce qui est inutilement complexe pour un simple format de documents de bureautique. + +Pour comparer, la spécification entière du format OASIS OpenDocument (ISO/IEC 26300:2006) tient en 722 pages. + +\begin{figure} + \includegraphics[height=5cm]{images/word2007spec} + \caption{Pour implanter correctement la spécification Office Open XML dans son logiciel, il faut passer au travers de 6039 pages de documentation.} +\end{figure} + + +%\subsubsection{OOXML réinvente la roue au lieu d'utiliser des standards existants} + +\subsubsection{Fonctionnalités définies par l'application au lieu d'être documentées par le format} +Par exemple, la section 6.1.2.19 du quatrième volume de la spécification du format OOXML définit le fonctionnement de l'attribut \og equationxml \fg des éléments \og shape \fg en tant que \og le format du contenu de cet attribut est en fait définit par l'application \fg : \textit{"actual format of the contents of this attribute are application-defined"} +\cite{EOOXML_objections} + +\subsubsection{Autres critiques et références additionnelles} +\begin{itemize} + \item OOXML a été conçu pour le passé, et non l'avenir \cite{BRA07} + \item Les 6039 pages de la spécification sont impossibles à évaluer dans un délai raisonnable \cite{GOO07} + \item Le format de dates décimal est utilisé et ignore le standard ISO 8601 \cite{SPO06}%kiddo + \item Omissions et contradictions dans la spécification OOXML \cite{EOOXML_objections} + \item Format de numérotation ignorant les standards ISO 10646 et W3C XSLT \cite{EOOXML_objections} + \item Objections diverses au format OOXML \cite{EOOXML_objections} + \item When is a standard not a standard? \cite{MAC07} + \item Critiques du format OOXML sur Wikipédia \cite{WIK_ooxmlcriticism} +\end{itemize} + + %Exemples de formats pouvant être qualifiés comme «ouverts», site web les répertoriant? \subsection{Quelques exemples} Voici une liste non exhaustive de formats ouverts populaires. \begin{itemize} - \item OASIS OpenDocument (.odt, .ods, .odp, etc): formats de documents de bureautique pouvant remplacer .doc, .xls, .ppt, etc. Ces formats sont supportés par OpenOffice, Google Docs, KOffice, Abiword, Gnumeric, [et rajouter une chiée d'autres logiciels ici] - \item Scalable Vector Graphics (.svg): un format d'images vectorielles pouvant remplacer [????], principalement utilisé par Inkscape, et supporté par les navigateurs web décents (Firefox et dérivés, Safari, Opera...) + \item OASIS OpenDocument (.odt, .ods, .odp, etc): formats de documents de bureautique pouvant remplacer .doc, .xls, .ppt, etc. Ces formats sont supportés par OpenOffice, Google Docs, KWord, Abiword, Gnumeric, ajaxWrite, Ichitaro, TextEdit, Zoho Writer, etc. + \item Scalable Vector Graphics (.svg): un format d'images vectorielles, principalement utilisé par Inkscape, et supporté par les navigateurs web décents (Firefox et dérivés, Safari, Opera, Konqueror, etc) \item OGG vorbis (.ogg): format de compression audio similaire au MP3, mais libre de brevets. Offre une qualité sonore supérieure au MP3 à des niveaux de compression équivalents. \item OGG theora (.ogg, .ogm): codec vidéo similaire à Xvid et DivX. \item Free Lossless Audio Codec (.flac): codec audio sans perte de qualité sonore permettant de stocker des enregistrements en utilisant moins d'espace que le format WAV @@ -65,4 +109,10 @@ Voir aussi: %recommandation Formats ouverts -\subsection{Recommandation} +\subsection{Recommandations pour l'usage de formats ouverts} +%par pitié, quelqu'un, révisez que ce que je dis ci-dessous, j'ai l'impression de dire un gros tas de conneries! +\proposition{Offrir en format ouvert tous les documents destiné au public, étudiants, professeurs et autres personnes affiliées à l'université de Montréal.} +\proposition{Dans les cas où des formats propriétaires doivent être distribués pour des raisons de transition, s'assurer d'offrir les documents en format ouverts (si applicable) avec une importance égale accordée.} +\proposition{Informer les destinataires de la raison pourquoi des formats ouverts sont utilisés pour la distribution de documents} +\proposition{Promouvoir l'utilisation de logiciels favorisant les formats ouverts et l'interopérabilité} +%autre chose? diff --git a/argumentaire_faecum/argumentaire_faecum.tex b/argumentaire_faecum/argumentaire_faecum.tex index cf46e9d..26e1450 100644 --- a/argumentaire_faecum/argumentaire_faecum.tex +++ b/argumentaire_faecum/argumentaire_faecum.tex @@ -29,7 +29,7 @@ pdfsubject={Argumentaire FA\'ECUM} \makeatother \theoremstyle{marcos} \theoremlisttype{optname} -\newtheorem{thmprop}{Proposition} +\newtheorem{thmprop}{Proposition}%wTF is thmprop? ça rend la liste des propositions à la fin bizarre ~jeff \newcommand{\proposition}[1]{\begin{thmprop}[#1]\end{thmprop}} \newcommand{\listpropositions}[0]{\listtheorems{thmprop}} diff --git a/argumentaire_faecum/images/word2007spec.jpg b/argumentaire_faecum/images/word2007spec.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54b1e059da1fc2a5213f294d85cf21928259405d GIT binary patch literal 15796 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 z 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