Euh… Désolé, je vais faire mon chieur, c'est p'tet parce que je n'aime pas xml, mais xml, bien qu'étant un langage, n'est pas un langage de programmation, mais de description. Même que c'est dans le nom… "langage de balisage extensible". Une balise, ça décrit, ça ne programme pas…
Et puis un jour on découvre ant, un autre jour on découvre Oracle Service Bus et on se rend compte qu'XML peut très bien servir de langage de programmation. Le paradigme est différent mais ça n'est pas un problème.
Je vais dire un truc tout simple: j'ai plus d'attirance envers yaml qu'xml.
C'est à mon avis un énorme problème d'une manière générale… Beaucoup trop de monde laisse leurs choix dictés par de l'affectif et non par des faits.
Au moins, c'est à peu près lisible par l'oeil, compact […]
Compact et lisible sont deux choses trés différentes. Compact oui on ne peux pas dire le contraire yaml est plus compact que xml, mais pour ce qui est de la lisibilité c'est discutable. yaml (comme json par exemple) t'oblige à connaître le format pour pouvoir lire un document, alors qu'xml quand c'est bien fait c'est autodécrit (comme les fichiers ini) :la balise contient le nom d'utilisateur par exemple. yaml est sensible au formatage ce qui n'est pas le cas de XML (ni de JSON par exemple) c'est dommages d'un point de vu de la lisibilité.
[…] et il me semble même qu'il soit possible de le parser en une seule passe tout en étant sûr de la validité, contrairement, il me semble, a XML.
Avec yaml tu peut valider la syntaxe, alors qu'avec XML tu peut valider la gramaire complète (tu peut valider que la balise doit contenir 2 balises , tu peut valider le format des données). Je n'ai aucune idée du nombre de passes, mais ça n'a pas d'intérêt une passe lourde et bien plus longue que 2 ou 3 passes légères (c'est aussi un mythe qu'il y avait à propos de la compilation il y a quelques décénies). Bien sûr cela dépend de la taille du fichier à analyser.
Il y a donc là gain de performance CPU, de place (important sur le réseau, il me semble… faudra que je redemande à des utilisateurs de 3G qui dépassent leur limite souvent pour en être sûr :D ) et de lisibilité.
Alors… Pour la lisibilité j'en ai déjà parlé, pour la place oui, pour les performances c'est différents. Pour de tout petits document oui, mais xml permet de traiter les documents comme un flux (avec les analyseurs SAX ou PAX) ce qui permet d'avoir de bonnes performances malgrès la taille des données (ou la lenteur de l'accès).
Oui le XML pose souvent des problèmes à cause entre autre de l'utilisation de requètes XPath qui sont nuisibles pour les performances, alors qu'il vaut mieux avoir une étape d'analyse du fichier XML qui récupère toutes les données en une seule fois.
En revanche, j'insiste, pour moi, ce ne sont pas des langages de programmation, ils se contentent de décrire: telle donnée de tel type possède telle valeur.
Je ne crois pas qu'il y ait des boucles, des conditions, des variables… bref, de la programmation.
Le shell est un langage de programmation ou une interface ? Les makefiles sont de la programmation ou une description du projet ? Il n'y a pas de boucles en lisp ce n'est pas pour ça que ce n'est pas un langage de programmation. Le XML dans une parties de ces gramaire permet d'avoir des variables, des fonctions, des confitions etc. C'est pas agréables à utiliser parce que ce n'est pas le paradigme pour lequel il est fait.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Pas très power user mais... ou pas!!!
Posté par barmic . En réponse à la dépêche Awesome 3.5. Évalué à 2.
Et puis un jour on découvre ant, un autre jour on découvre Oracle Service Bus et on se rend compte qu'XML peut très bien servir de langage de programmation. Le paradigme est différent mais ça n'est pas un problème.
C'est à mon avis un énorme problème d'une manière générale… Beaucoup trop de monde laisse leurs choix dictés par de l'affectif et non par des faits.
Compact et lisible sont deux choses trés différentes. Compact oui on ne peux pas dire le contraire yaml est plus compact que xml, mais pour ce qui est de la lisibilité c'est discutable. yaml (comme json par exemple) t'oblige à connaître le format pour pouvoir lire un document, alors qu'xml quand c'est bien fait c'est autodécrit (comme les fichiers ini) :la balise contient le nom d'utilisateur par exemple. yaml est sensible au formatage ce qui n'est pas le cas de XML (ni de JSON par exemple) c'est dommages d'un point de vu de la lisibilité.
Avec yaml tu peut valider la syntaxe, alors qu'avec XML tu peut valider la gramaire complète (tu peut valider que la balise doit contenir 2 balises , tu peut valider le format des données). Je n'ai aucune idée du nombre de passes, mais ça n'a pas d'intérêt une passe lourde et bien plus longue que 2 ou 3 passes légères (c'est aussi un mythe qu'il y avait à propos de la compilation il y a quelques décénies). Bien sûr cela dépend de la taille du fichier à analyser.
Alors… Pour la lisibilité j'en ai déjà parlé, pour la place oui, pour les performances c'est différents. Pour de tout petits document oui, mais xml permet de traiter les documents comme un flux (avec les analyseurs SAX ou PAX) ce qui permet d'avoir de bonnes performances malgrès la taille des données (ou la lenteur de l'accès).
Oui le XML pose souvent des problèmes à cause entre autre de l'utilisation de requètes XPath qui sont nuisibles pour les performances, alors qu'il vaut mieux avoir une étape d'analyse du fichier XML qui récupère toutes les données en une seule fois.
Le shell est un langage de programmation ou une interface ? Les makefiles sont de la programmation ou une description du projet ? Il n'y a pas de boucles en lisp ce n'est pas pour ça que ce n'est pas un langage de programmation. Le XML dans une parties de ces gramaire permet d'avoir des variables, des fonctions, des confitions etc. C'est pas agréables à utiliser parce que ce n'est pas le paradigme pour lequel il est fait.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)