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