• # XML, encore et toujours.... le mauvais choix pour la mauvaise utilisation.

    Posté par . En réponse au journal Projet Badnik, partie 2 : GameData et appel à contribution. Évalué à 6.

    Note préalable: je fais un sujet spécifiquement sur XML, parce que, voila, ça me gonfle de voir ce truc illisible utilisé pour tout et n'importe quoi.

    Je peux savoir quelle est la raison d'utiliser XML pour l'exemple cité?
    Ca n'a juste... aucun intérêt, si ne c'est de ne pas être maintenable facilement à la main. Je sais que certains sont de vrais fan de XML, mais voici à quoi ressemblerait le même contenu, pour un paquet Debian (qui est quelque chose de bien éprouvé pour ce type d'usage, donc. Et je reprend ici tout, alors que je n'aurai pas forcément utilisé les même clés. En plus, je n'ai pas mis de description courte, vu qu'elle n'existe pas dans le fichier XML...):

    id: sonic-the-hedgehog
    license:cc0
    title:Sonic the Hedgehog
    description:
     In an attempt to steal the six Chaos Emeralds and harness their power,
     Dr. Ivo Robotnik has trapped the animal inhabitants of South Island in
     cybernetic shells and metal capsule prisons.
     Control Sonic the Hedgehog to stop Robotnik's plans by freeing your
     animal friends and collecting the Chaos Emeralds.
    release_date: 27/06/1991
    genres: platform
    screenshots:http://info.sonicretro.org/images/6/6f/Sonic1_title.png
     http://upload.wikimedia.org/wikipedia/en/d/d3/MD_Sonic_the_Hedgehog.png
    covers:http://upload.wikimedia.org/wikipedia/en/b/ba/Sonic_the_Hedgehog_1_Genesis_box_art.jpg
    developers:Sonic Team<http://www.sonicteam.com/>
    modes:local<1,1>
    controllers:gamepad<4>
    

    Le public avertis de ce site éclairé aura constaté quelques adaptations libres autours de certains aspects, tels que les modes et les contrôleurs.
    En réalité, pour Debian on aurait utilisé les debtags pour nombre de ces données, comme le genre. D'ailleurs... ceci devrait t'intéresser.

    Je ne sais pas si ce n'est que moi, mais en tout cas ça me semble déjà bien plus lisible (*), à la fois pour l'homme, mais aussi pour un programme ( pas besoin de vérifier la cohérence des balises, notamment ).
    Il aurait aussi été possible d'utiliser JSON, un peu moins pire qu'XML pour l'usage et avec pleins de lib pour l'intégrer directement dans du code, ou bien YAML (clairement plus propre que les langages à balise que sont XML et JSON...).

    Tous ces choix auraient été, il me semble moins ridicules que XML. Oui, je suis un XML hater, et fier de l'être, parce que personne n'a jamais pu me dire en quoi XML est supérieur à tous les autres formats sur tous les usages.

    *: au sujet de la lisibilité, je pense que ce qui l' handicape le plus, c'est le fait que j'ai retranscrit comme une brute les informations provenant d'un XML, sans réfléchir. Et puis, les URL n'aident pas. Je n'ai pas non plus aéré le texte, alors que j'aurai pu, avec notamment des retours à la ligne lorsque le contenu d'une catégorie prends plusieurs lignes.