Некоторые коллеги и я сравнивали прошлые языки, которые мы запрограммировали, и говорили о нашем опыте с VBScript с его нечетными функциями, такими как 1-основанный индекс вместо индексов на основе 0, таких как почти каждый другой язык, аргументируется тем, что он был языком для пользователей (например, Excel VBA) вместо языка для разработчиков.
Затем кто-то сказал: " XPath также имеет индексы на основе 1", которые я не мог поверить, пока не нашел в этой статье, в которой многим причинам дается в пользу подхода, основанного на 0, включая некоторых из самого Майкла Кэя:
- "... индексирование с нулевым индексом имеет тенденцию упрощать формулы индекса при доступе к многомерному массиву с одномерным выражением доступа к массиву"
- "при обработке таблиц или подписи в строках адресация с нулевой точкой часто будет намного удобнее"
- "... аппаратная адресация не является единственным преимуществом адресной адресации 0... это также упрощает вычисления..."
но затем Майкл Кей цитируется как заключение:
... 1-основанная логика была правильным выбором для XPath и XSLT... потому что язык был разработан для пользователей, а не для программистов, и пользователи по-прежнему имеют этот старомодный привычка ссылаться на первое глава в книге как первая глава...
Может кто-нибудь объяснить это мне? (1) Как XPath предназначен для пользователей? Я не могу представить, чтобы кто-либо, не являющийся разработчиком, пререкался с синтаксической жесткостью XPath или аспектами декларативного/функционального программирования XSLT. и (2) Почему действительно создатели XPath пошли против нормы современных языков программирования, выбирая индекс на основе 1?