Certains collègues et moi comparions les langues précédentes dans lesquelles nous avions programmé et parlions de notre expérience avec VBScript avec ses fonctionnalités étranges telles que l' index basé sur 1 au lieu d' index basé sur 0 comme presque toutes les autres langues, le raisonnement étant qu'il s'agissait d'un langage pour les utilisateurs (par exemple Excel VBA) au lieu d'un langage pour les développeurs.
Puis quelqu'un a dit: " XPath a également des index basés sur 1 ", ce que je ne pouvais pas croire jusqu'à ce que je trouve cet article dans lequel de nombreuses raisons sont données en faveur de l'approche basée sur 0, y compris certaines de Michael Kay lui-même:
- "... l'indexation de base zéro tend à simplifier les formules d'index lors de l'accès à un tableau multidimensionnel avec une expression d'accès au tableau unidimensionnel"
- "lors de la manipulation de tables ou de l'indexation dans des chaînes, l'adressage de base zéro serait souvent beaucoup plus pratique"
- "... l'adressage matériel n'est pas le seul avantage de l'adressage basé sur 0 ... il facilite également les calculs ..."
mais ensuite Michael Kay est cité comme concluant:
... la logique basée sur 1 était le bon choix pour XPath et XSLT ... parce que le langage a été conçu pour les utilisateurs, pas pour les programmeurs, et les utilisateurs ont toujours cette habitude démodée de se référer au premier chapitre d'un livre comme Chapitre Une...
Quelqu'un peut-il m'expliquer cela? (1) Comment XPath est-il conçu pour les utilisateurs? Je ne peux imaginer quiconque qui n'est pas un développeur se débattre avec la rigidité syntaxique de XPath ou les aspects déclaratifs / de programmation fonctionnelle de XSLT. et (2) Pourquoi les créateurs de XPath sont-ils vraiment allés à l'encontre de la norme des langages de programmation modernes en choisissant un index basé sur 1?
n
, pas très contre nature et conduisant souvent à des erreursn - 1
. Pour quiconque est perverti en raison de la logique de la «programmation moderne», commencer à utiliser l'indexation basée sur 1 serait une expérience agréable et rafraîchissante :)Réponses:
Les tableaux et autres index de collection représentent les décalages de mémoire, donc, assez logiquement, ils commencent à zéro. Les index XML et XPATH représentent des positions et des décomptes, donc assez logiquement ils commencent à un (et zéro est donc représentatif de "vide")
la source
Pour répondre à cette question, nous devons examiner l'histoire de certaines technologies.
RSS XML XSLT et historique XPath
La version 0.9 de RSS a été initialement publiée en tant que Résumé du site RDF en 1999 par quelques personnes de Netscape pour le portail my.netscape.com de Netscape. Plus tard cette année-là, il a été renommé RSS (Rich Site Summary) avec la mise à jour v0.91. Le développement du projet a changé de mains à plusieurs reprises, mais la version 1.0 de RSS a été publiée en décembre 2000. Avec la mise à jour v1.0, RSS incluait la prise en charge de XML.
En 2002, la version 2.0 est sortie en septembre sous le nom de RSS (Really Simple Syndication) et a commencé à évoluer vers une technologie Internet majeure. À ses débuts, les flux RSS (et les données XML qu'ils contenaient) étaient lus par des humains au format brut. Les blogs et autres sources d'actualités utilisaient des flux RSS et XML pour produire des informations constamment mises à jour. Puisque XML était lu par de simples mortels (non-programmeurs), XPath et XSLT devaient également être facilement compréhensibles, afin que ces simples mortels ne soient pas submergés par la complexité lorsqu'ils interagissent avec lui. C'est pourquoi XPath imite le style des URI, ce que les utilisateurs finaux connaissaient déjà. L'une des concessions faites aux fins de la lisibilité par les utilisateurs, était d'utiliser des techniques de numérotation à l'ancienne, c'est-à-dire des index basés sur 1 au lieu d'index basés sur 0.
Bien que les flux RSS et XML aient été conçus pour être lisibles par la plupart des gens, les lecteurs RSS ont été développés pour fournir une interface plus agréable aux humains pour lire les flux RSS. Désormais, les données brutes RSS et XML sont lues presque exclusivement avec une sorte de lecteur ou d'interface graphique. XML est encore fréquemment utilisé (peut-être de façon permanente) sur le Web, mais il est masqué par des interfaces utilisateur graphiques sophistiquées pour offrir une meilleure expérience aux utilisateurs finaux.
* Le terme « simples mortels » fait référence aux humains qui ne sont pas des programmeurs
la source