Деякі з мене колеги порівнювали минулі мови, які ми запрограмували, і розповідали про наш досвід роботи з VBScript з його дивними функціями, такими як індекс на основі 1, а не 0-засновані індекси, як майже у всіх інших мов, міркуючи, що це був мова для користувачів (наприклад, Excel VBA) замість мови для розробників.
Тоді хтось сказав: " XPath також має 1-базисні індекси ", в які я не міг повірити, поки не знайшов цю статтю, в якій викладено багато причин на користь підходу на основі 0, включаючи деякі від самого Майкла Кей:
- "... індексація на основі нуля має тенденцію до спрощення формул індексу під час доступу до багатовимірного масиву з виразом доступу до одновимірного масиву"
- "під час обробки таблиць або підписки на рядки, адресація на нульовій основі часто буде набагато зручнішою"
- "... апаратне вирішення не є єдиною перевагою адресації на основі 0 ... це також полегшує обчислення ..."
але тоді Майкл Кей цитується як висновок:
... Логіка на основі 1 була правильним вибором для XPath та XSLT ... адже мова була розроблена для користувачів, а не для програмістів, і користувачі все ще мають старомодну звичку посилатися на першу главу книги як на Розділ Один ...
Хтось може мені це пояснити? (1) Як розробляється XPath для користувачів? Я не уявляю нікого, хто не є розробником, який бореться з синтаксичною жорсткістю XPath або декларативними / функціонально-програмними аспектами XSLT. та (2) Чому насправді творці XPath ішли проти норми сучасних мов програмування, вибираючи індекс на основі 1?
n
, не дуже неприродного і часто призводить до помилок n - 1
. Для тих, хто перекручений через логіку «сучасного програмування», почати використовувати індексацію на основі 1 було б насолодою та освіжаючим досвідом :)