Alcuni colleghi ed io stavamo confrontando linguaggi passati in cui avevamo programmato e stavamo parlando della nostra esperienza con VBScript con le sue caratteristiche strane come l' indice basato su 1 invece di indici basati su 0 come quasi ogni altra lingua ha, il ragionamento è che era un lingua per gli utenti (ad es. Excel VBA) invece di una lingua per gli sviluppatori.
Poi qualcuno ha detto, " XPath ha anche indici basati su 1 " a cui non potevo credere fino a quando non ho trovato questo articolo in cui vengono fornite molte ragioni a favore dell'approccio basato su 0, inclusi alcuni dello stesso Michael Kay:
- "... l'indicizzazione in base zero tende a semplificare le formule dell'indice quando si accede a un array multidimensionale con un'espressione di accesso a un array unidimensionale"
- "quando si gestiscono tabelle, o si inseriscono i pedici in stringhe, l'indirizzamento a base zero sarebbe spesso molto più conveniente"
- "... l'indirizzamento hardware non è l'unico vantaggio dell'indirizzamento basato su 0 ... rende anche i calcoli più facili ..."
ma poi viene citato Michael Kay che conclude:
... la logica basata su 1 era la scelta giusta per XPath e XSLT ... perché il linguaggio era stato progettato per gli utenti, non per i programmatori, e gli utenti hanno ancora questa abitudine antiquata di fare riferimento al primo capitolo di un libro come Capitolo Uno...
Qualcuno può spiegarmi questo? (1) Come è progettato XPath per gli utenti? Non riesco a immaginare nessuno che non sia uno sviluppatore alle prese con la rigidità sintattica di XPath o gli aspetti di programmazione dichiarativa / funzionale di XSLT. e (2) Perché davvero i creatori di XPath sono andati contro la norma dei moderni linguaggi di programmazione scegliendo un indice basato su 1?
n
, non molto innaturale e spesso porta a errori n - 1
. Per chiunque sia perverso a causa della logica della "programmazione moderna", iniziare a utilizzare l'indicizzazione basata su 1 sarebbe un'esperienza divertente e rinfrescante :)