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 erreurs n - 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 :)