Alguns colegas e eu estávamos comparando linguagens anteriores que havíamos programado e conversando sobre nossa experiência com VBScript com seus recursos estranhos , como índice baseado em 1 em vez de índices baseados em 0, como quase todas as outras linguagens têm, o raciocínio sendo que era um linguagem para usuários (por exemplo, Excel VBA) em vez de uma linguagem para desenvolvedores.
Então alguém disse: " XPath também tem índices baseados em 1 ", que eu não pude acreditar até encontrar este artigo no qual muitos motivos são dados a favor da abordagem baseada em 0, incluindo alguns do próprio Michael Kay:
- "... a indexação baseada em zero tende a tornar as fórmulas de índice mais simples ao acessar uma matriz multidimensional com uma expressão de acesso à matriz unidimensional"
- "ao manipular tabelas ou subscrever em strings, o endereçamento baseado em zero costuma ser muito mais conveniente"
- "... o endereçamento de hardware não é o único benefício do endereçamento baseado em 0 ... ele também torna os cálculos mais fáceis ..."
mas então Michael Kay é citado como concluindo:
... a lógica baseada em 1 foi a escolha certa para XPath e XSLT ... porque a linguagem foi projetada para usuários, não para programadores, e os usuários ainda têm o hábito antiquado de se referir ao primeiro capítulo de um livro como Capítulo 1...
Alguém pode explicar isso para mim? (1) Como o XPath é projetado para usuários? Não consigo imaginar alguém que não seja um desenvolvedor lutando com a rigidez sintática do XPath ou os aspectos de programação declarativa / funcional do XSLT. e (2) por que realmente os criadores do XPath foram contra a norma das linguagens de programação modernas ao escolher um índice baseado em 1?
n
, não o muito antinatural e muitas vezes levando a erros n - 1
. Para qualquer pessoa com lógica pervertida devido à "programação moderna", começar a usar a indexação baseada em 1 seria uma experiência agradável e refrescante :)