pt
Moulé à la louche depuis 1999
Les trucs qui m'énervent... et je vais pas prendre de pincettes
Internet, informatique, logiciel libre, économie, politique, vie courante et tout le reste...

Un format XML "efficace" ?

Vendredi 11 mars 2011

(Ce qui suit est une déblatération de développeur.)

Je me suis toujours gaussé de voir des développeurs utiliser de l'XML pour tout et n'importe quoi. Surtout pour n'importe quoi. Comme disait je-ne-sais-plus-qui, XML est une solution à la recherche d'un problème. XML a son utilité, mais il faut arrêter de l'utiliser à toutes les sauces.

Parmi les nombreux reproches qu'on peut faire à l'XML, on peut citer son horrible gaspillage de place. Dans un monde où l'informatique embarquée foisonne (smartphones, baladeurs...), ce n'est pas l'idéal.

Le W3C a récemment adopté un format XML optimisé pour occuper moins de place: EXI (Efficient XML Interchange Format 1.0) qui se trouve être... un format binaire ! Ah bon ? Efficace=binaire pour les groupes de travail XML, maintenant ? Je croyais que les formats binaires c'était le mal. Mouahaha... Non vraiment c'est n'importe quoi.


A ce titre, je préfère encore SQLite: C'est un format binaire stable et magnifiquement portable: Je peux prendre ma base SQLite et l'utiliser tel que sous Windows, MacOSX, Linux, Unix, iPhone et bien d'autres systèmes (y compris embarqués).

En plus il m'offre l'indexation, la mise à jour partielle de données sans ré-écrire tout le fichier, la gestion des transactions, l'intégrité des opérations (ACID), le requêtage avec de nombreux critères, le tri, les opérations d'ensemble (groupements, calculs...), les jointures et bien d'autres choses qui sont hors de portée des lib XML et que vous allez vous palucher à la main. Vous aimez faire du boulot inutile ? (Vous préférez quoi pour parcourir votre fichier XML ? DOM qui bouffe toute la mémoire, ou SAX qui vous oblige à écrire une machine à état ? Meh.)

Tout ça dans une lib plus petite que celle de libxml2 (~300 ko pour libxml2, ~275 ko pour SQLite). SQLite existe depuis 11 ans et c'est probablement l'un des codes les mieux testé au monde. On en trouve dans des tas de systèmes embarqués (Apple's iOS, Symbian OS, Nokia Maemo, Google Android, RIM BlackBerry, MeeGo, HP/PalmwebOS...).


EXI, encore une solution à la recherche d'un problème déjà résolu ? (Bon pour être honnête, EXI a l'air d'être formidablement plus économe en octets pour encoder les informations, même plus efficace que SQLite ou de l'XML gzippé.).

Entre les specs qui restent en draft pendant des années, les non-décisions, les vendeurs (Apple/Google/Mozilla/Microsoft) qui - finalement - font plus avancer le schmilblick, les inventions incertaines et les conflits d'intérêts, plus le temps passe et plus le W3C me semble un "grand machin" à l'utilité douteuse. Loin de moi l'idée de dénigrer l'importance des standards, mais malgré des annonces tonitruante comme la "sortie" du HTML5 (oh le beau logo), on a l'impression qu'ils commencent à ne plus savoir où ils vont.


PS: SQLite, avec le fameux zlib dont je vous avais parlé, fait partie des librairies les plus réutilisées massivement par l'industrie sans reconnaissance. Honte à eux.

Voir tous les billets