Algunos colegas y yo estábamos comparando idiomas anteriores en los que habíamos programado y estábamos hablando de nuestra experiencia con VBScript con sus características extrañas , como el índice basado en 1 en lugar de los índices basados en 0, como casi todos los demás idiomas, el razonamiento era que era un idioma para los usuarios (por ejemplo, Excel VBA) en lugar de un idioma para los desarrolladores.
Entonces alguien dijo: " XPath también tiene índices basados en 1 ", lo cual no podía creer hasta que encontré este artículo en el que se dan muchas razones a favor del enfoque basado en 0, incluidas algunas del propio Michael Kay:
- "... la indexación basada en cero tiende a simplificar las fórmulas del índice cuando se accede a una matriz multidimensional con una expresión de acceso a una matriz unidimensional"
- "cuando se manejan tablas o se realizan subíndices en cadenas, el direccionamiento basado en cero suele ser mucho más conveniente"
- "... el direccionamiento por hardware no es el único beneficio del direccionamiento basado en 0 ... también facilita los cálculos ..."
pero luego se cita a Michael Kay como concluyente:
... la lógica basada en 1 fue la elección correcta para XPath y XSLT ... porque el lenguaje fue diseñado para usuarios, no para programadores, y los usuarios todavía tienen este hábito anticuado de referirse al primer capítulo de un libro como Capítulo Uno...
¿Puede alguien explicarme eso? (1) ¿Cómo está diseñado XPath para los usuarios? No puedo imaginar a nadie que no sea un desarrollador luchando con la rigidez sintáctica de XPath o los aspectos declarativos / de programación funcional de XSLT. y (2) ¿Por qué realmente los creadores de XPath fueron en contra de la norma de los lenguajes de programación modernos al elegir un índice basado en 1?
n
, no muy poco natural y a menudo conduce a errores n - 1
. Para cualquier persona con lógica pervertida debido a la "programación moderna", comenzar a usar la indexación basada en 1 sería una experiencia agradable y refrescante :)