IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Web Discussion :

Le langage de balisage extensible XML serait bien mieux que YAML, d'autant que YAML ne sert à rien


Sujet :

Conception Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Communiqués de presse

    Femme Profil pro
    Traductrice Technique
    Inscrit en
    Juin 2023
    Messages
    2 707
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Traductrice Technique

    Informations forums :
    Inscription : Juin 2023
    Messages : 2 707
    Par défaut Le langage de balisage extensible XML serait bien mieux que YAML, d'autant que YAML ne sert à rien
    Le langage de balisage extensible XML serait bien mieux que YAML, d'autant que YAML ne sert à rien, d'après Carl Johnson.

    Le langage de balisage extensible ou XML est un métalangage informatique de balisage générique dont l'objectif initial est de faciliter l'échange automatisé de contenus complexes entre systèmes d'informations hétérogènes (interopérabilité). Tandis que YAML permet de représenter des informations plus élaborées que le simple CSV en gardant cependant une lisibilité presque comparable. La syntaxe du flux YAML est relativement simple, efficace, moins verbeuse que du XML.

    Cependant, dans le podcast Go Time, Carl Johnson déclare que XML est meilleur que YAML. De son point de vue épicé, XML est meilleur que YAML, parce qu'il y a des situations où XML est approprié, mais il n'y a aucune situation où YAML est approprié.


    Parlons d'abord de XML

    XML a eu une très mauvaise réputation. La raison pour laquelle il a eu cette mauvaise réputation est que les gens l'utilisaient pour des choses pour lesquelles il n'aurait jamais dû être utilisé. XML signifie Extensible Markup Language (langage de balisage extensible). Et si vous l'utilisez comme un langage de balisage extensible, c'est en fait très bien.

    Disons que vous travaillez sur quelque chose et que vous vous dites : "Je fais un nouveau type de livre, et j'ai besoin d'annoter tous les versets de la Bible, et d'avoir les titres des chapitres et tout ça." C'est très bien pour ça. C'est vraiment bien quand vous avez un document, que certaines choses sont en italique, que d'autres sont en langue étrangère, qu'il y a des sous-titres et tout le reste. C'est vraiment bien pour ça.

    Ce n'est pas bon si c'est comme : "Je dois configurer ce serveur et le serveur doit savoir si cette valeur est vraie ou fausse." Non, ce n'est pas bon. Ne faites pas ça. Ce n'est pas une bonne utilisation de XML.

    Mais XML peut être utilisé à certaines fins. Et je pense que le fait que maintenant tout le monde écrive React... et qu'ils l'écrivent avec JSX... et que JSX est fondamentalement juste du XML en ligne... je pense que cela montre qu'il y a des cas où XML est plutôt bon.

    YAML d'un autre côté

    Je pense que YAML n'est jamais bon. Il y a toujours quelque chose de mieux que YAML ! Nous sommes enfin arrivés à Go 1.21 et j'en suis très heureux. Et vous savez pourquoi ? Parce que YAML m'a toujours mordu le derrière avec Go 1.20. Demandez-moi pourquoi.

    Eh bien, quand vous dites dans votre fichier de test : "testez ceci contre Go 1.20". Il interprète cela comme Go 1.2. C'est ainsi qu'à deux ou trois reprises, j'ai eu un repo où je me suis dit : "Ces tests ne passent pas. Pourquoi mes tests ne passent-ils pas ? Je viens de passer à Go 1.20." Et c'était comme : "Oh, non. J'ai décidé que c'était Go 1.2 " Et donc YAML va toujours vous faire ça...

    De meilleurs choix

    Je comprends pourquoi les gens utilisent YAML, mais il y a de meilleurs choix. Vous pouvez utiliser TOML. Vous pouvez utiliser CUE. Vous pouvez utiliser beaucoup de choses. J'aime la façon dont Caddy le fait. Avec Caddy, le langage canonique que Caddy comprend est JSON, mais ils ont des adaptateurs.

    Ainsi, si vous voulez écrire du YAML, vous pouvez le faire. Mais Caddy prend ce YAML et le transforme en JSON dans les coulisses. Il existe également un langage Caddy spécifique. Vous pouvez donc lui donner le langage Caddy et il le transforme en JSON dans les coulisses. Vous pouvez également lui donner une configuration NGINX et il la transformera en JSON dans les coulisses. Si vous disposez des cycles et du temps nécessaires, c'est probablement la meilleure solution pour la plupart des gens...

    Mais quand la seule façon de le faire est YAML, c'est comme : "Non... !" C'est trop sujet aux erreurs, il y a trop de choses... Il faut toujours tout citer.

    Et puis...

    La spécification YAML a toutes ces fonctionnalités que personne n'utilise jamais, parce qu'elles sont vraiment déroutantes et difficiles, et qu'on peut inclure des documents à l'intérieur d'autres documents, avec des références et tout ça... Et c'est du genre : "Oh, mec, je n'ai pas envie de faire ça ! Oh, mec, je ne veux pas avoir à comprendre tout ça."

    Et si on ne fait pas attention, ça peut être : "Oh ouais, les trois premiers trucs que je lui ai donnés ont compris ça, mais le troisième a utilisé un analyseur qu'ils ont trouvé à l'arrière d'un camion, et il ne l'a pas compris." et c'est comme : "Oh, mec..."

    YAML... jamais approprié. XML est parfois approprié.
    Source : Carl Johnson

    Et vous ?

    Pensez-vous que cette avis est crédible ou pertinent ?
    Quel est votre avis sur le langage YAML ?

    Voir aussi :

    Le langage C ne sera-t-il jamais battu en termes de rapidité d'exécution et de faible consommation d'énergie ? Voici les résultats d'une étude sur 27 langages de programmation les plus populaires

    Kubernetes exposé : Un Yaml près du désastre, 72% des installations sont non sécurisées et exposées aux attaques

    « Les formules Excel sont le langage de programmation le plus utilisé », d'après Microsoft qui annonce donc LAMBDA
    Pour la création des fonctions personnalisées à partir des formules Excel
    Publication de communiqués de presse en informatique. Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 742
    Par défaut
    Il y a des situations où XML est approprié, mais aucune où YAML n'est pas approprié
    Oui, XML est beaucoup plus complet, mais au détriment de la lisibilité. Pour une configuration simple, je préfère utiliser YAML.

    Si vraiment on a un risque que `version: 1.20` soit interprété comme `version: 1.2`, je vois pas pourquoi on ne pourrait pas utiliser de guillemets.

    On n'utilise pas toutes les fonctionnalités de YAML
    je pense que c'est applicable à beaucoup d'outils et de langages, cet argument n'est pas spécifique.

    J'ai bien entendu ses arguments, mais je ne suis pas convaincu.

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 778
    Par défaut
    Citation Envoyé par Daïmanu Voir le message
    Oui, XML est beaucoup plus complet, mais au détriment de la lisibilité. Pour une configuration simple, je préfère utiliser YAML.
    Ça tombe bien, il ne parle absolument pas de XML pour ce cas d'utilisation !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 742
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    Ça tombe bien, il ne parle absolument pas de XML pour ce cas d'utilisation !
    Effectivement il ne le dit pas ouvertement, mais c'est tout le flou quand il dit que YAML ne sert à rien. Du moins c'est comme ça que je le comprends.

  5. #5
    Membre éprouvé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    1 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 231
    Par défaut
    Autant utiliser des fichiers Json. Quand je tombe sur des fichiers Yaml ça me gave, il suffit de faire une erreur d'indentation et ça casse tout. Bien sûr c'est pas forcément simple de voir le problème. Et plus la configuration est grande, plus je trouve ça horrible.
    Pour des fichiers des quelques lignes ça va, et plus ça grandi, plus j'ai vraiment envie d'utiliser autre chose.

  6. #6
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 516
    Par défaut
    Citation Envoyé par Carl Johnson
    Well, when you say in your test file:

    “test this against Go 1.20”

    It interprets that as Go 1.2. 😭🤣
    Avec YAML, quand on écrit une chaîne de caractères, souvent, on peut omettre les guillemets. Mais on peut alors se faire avoir par surprise si les guillemets étaient nécessaires. C'est ce que Colm O'Connor, l'auteur de StrictYAML, nomme The Norway Problem.

    Hélas, les formats les plus populaires pour représenter une arborescence lisible par un humain sont souvent nuls.

    XML et YAML sont tous les deux des usines à gaz remplies de failles de sécurité. Par exemple, ils sont tous les deux vulnérables à la billion laughs attack. Quand un fichier XML ou YAML est une entrée utilisateur, il faut utiliser un parseur qui n'accepte qu'un sous ensemble de XML ou YAML pour éviter les problèmes. En pratique, j'avoue apprécier la concision de YAML malgré ses défauts.

    JSON a ses qualités, mais il y a plusieurs standards qui coexistent. Nicolas Seriot avait écrit un article à ce sujet : Parsing JSON is a Minefield 💣.

    Pour les configurations, TOML n'est pas mal. Le problème de JSON est qu'on ne peut pas ajouter des commentaires.

  7. #7
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 712
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 712
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Daïmanu Voir le message
    Effectivement il ne le dit pas ouvertement, mais c'est tout le flou quand il dit que YAML ne sert à rien. Du moins c'est comme ça que je le comprends.
    YAML est un bon outil de transfert de base de données ou pour sérialiser des objets. Et XML est excellent pour faire des trucs comme HTML. Ils ont tous les deux leur force et faiblesses. Le problème est que certains pensent qu'un des deux puisse être utiliser comme une solution universelle.

  8. #8
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 185
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 185
    Par défaut
    A deux doigt de découvrir que JSON c'est bien...

  9. #9
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2015
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 493
    Par défaut
    Il y a fort, fort longtemps, dans un endroit fort, fort lointain, il nous arrivait de définir un langage propre à l'accomplissement d'un type de tâches spécifiques. Une grammaire restreinte, un vocabulaire précis, tout ce qui n'y entrait pas était rejeté.
    Bon, nous étions vêtu de peaux de bêtes, chacun de nous devait maîtriser chaque aspect de sa vie depuis la couture des chaussons jusqu'à l'allumage du feu. Ce genre de truc ne nous posait donc pas vraiment problème. Seul souci, impossible de laisser sa trace au plafond de la caverne, nous étions anonymes, noyés dans l'obscurité de ces âges lointains, sans le plus petit réseau social pour faire notre pub.
    Groumpf !

  10. #10
    Membre éclairé Avatar de pcdwarf
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 272
    Par défaut
    Je suis un vieux c**. J'ai jamais compris l'engouement pour le YAML.
    C'est comme JSON mais la clareté en moins.

    YAML est un langage assez facile à lire mais difficile à écrire, même avec l'éditeur qui va bien pour gérer l'indentation.

    Heureusement, comme le YAML peut s'écrire en JSON et vice versa, c'est assez facile de faire la traduction.

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Par défaut One big size does not fit all
    Le XML aurait pu (du) être un excellent outil s'il n'avait pas été pollué par une tonne de fonctionnalités inutiles sinon dangereuses. C'est malheureusement souvent le problème des standards qui incorporent plein de trucs pour faire plaisir à tout le monde (comme le CORBA par exemple qui était une véritable usine à gaz). Ce qui est étonnant dans ce cas, est que le XML avait été conçu à l'origine comme une simplification du SGML. Quoiqu'il en soit le XML reste un bien meilleur choix pour l'échange de données complexes que le YAML.

  12. #12
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 079
    Par défaut
    Pyramide, les deux lignes que tu montres ne sont pas du JSON.

    AlexRutny, tu peux préciser de quelles fonctionnalités inutiles et dangereuses tu parles ?

Discussions similaires

  1. [XSLT extension]XML et protection de données
    Par trent94 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 23/10/2006, 13h39
  2. Windows XP ne reconnait plus l'extension XML
    Par kennie77 dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 03/02/2006, 17h05
  3. langage le + adapté pour XML ?
    Par heleneh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 07/09/2005, 19h08
  4. [DTD][java]Verifier qu'un doc XML est bien formé
    Par bart64 dans le forum Valider
    Réponses: 3
    Dernier message: 08/01/2005, 15h17
  5. EXTENSIONS XML, XSL, XSLT, sur internet explorer 6 pack 2
    Par superjeanpi dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 08/12/2004, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo