Razem z kilkoma kolegami porównaliśmy poprzednie języki, w których programowaliśmy, i rozmawialiśmy o naszych doświadczeniach z VBScript z jego dziwnymi funkcjami, takimi jak indeks oparty na 1 zamiast indeksów opartych na 0, jak ma to miejsce w prawie każdym innym języku, rozumując, że był to język dla użytkowników (np. Excel VBA) zamiast języka dla programistów.
Następnie ktoś powiedział: „ XPath ma również indeksy oparte na 1 ”, w co nie mogłem uwierzyć, dopóki nie znalazłem tego artykułu, w którym podano wiele powodów przemawiających za podejściem opartym na zerach, w tym kilka od samego Michaela Kaya:
- „... indeksowanie od zera zwykle upraszcza formuły indeksów podczas uzyskiwania dostępu do wielowymiarowej tablicy z jednowymiarowym wyrażeniem dostępu do tablicy”
- „podczas obsługi tabel lub indeksowania do łańcuchów, adresowanie od zera byłoby często znacznie wygodniejsze”
- „… adresowanie sprzętowe nie jest jedyną korzyścią wynikającą z adresowania opartego na zerach… ułatwia również obliczenia…”
ale potem Michael Kay jest cytowany jako podsumowujący:
... logika oparta na 1 była właściwym wyborem dla XPath i XSLT ... ponieważ język został zaprojektowany dla użytkowników, a nie dla programistów, a użytkownicy nadal mają ten staroświecki zwyczaj nazywania pierwszego rozdziału książki jako rozdziału Jeden...
Czy ktoś może mi to wyjaśnić? (1) W jaki sposób XPath jest przeznaczony dla użytkowników? Nie wyobrażam sobie nikogo, kto nie jest programistą, zmagającego się ze sztywnością składniową XPath lub deklaratywnymi / funkcjonalnymi aspektami programowania XSLT. oraz (2) Dlaczego twórcy XPath rzeczywiście wystąpili wbrew normom współczesnych języków programowania, wybierając indeks oparty na 1?
n
niezbyt nienaturalną i często prowadzącą do błędów n - 1
. Dla każdego, kto ma wypaczoną logikę „nowoczesnego programowania”, rozpoczęcie korzystania z indeksowania opartego na 1 byłoby przyjemnym i odświeżającym doświadczeniem :)