一部の同僚と私は、プログラミングした過去の言語を比較し、他のほとんどすべての言語のように0 ベースのインデックスではなく1ベースのインデックスなどの奇妙な機能を備えたVBScriptの経験について話していました。開発者向けの言語ではなく、ユーザー向けの言語(Excel VBAなど)。
次に、「XPathにも1ベースのインデックスがある」と誰かが言った。マイケルケイ自身からのいくつかを含む0ベースのアプローチを支持する多くの理由があるこの記事を見つけるまで、私は信じられなかった。
- 「...ゼロベースのインデックス付けは、1次元配列アクセス式で多次元配列にアクセスするときに、インデックス式をより単純にする傾向があります。」
- 「テーブルを処理するとき、または文字列に添え字を付けるとき、ゼロベースのアドレッシングは多くの場合はるかに便利です。」
- 「...ハードウェアアドレッシングは0ベースのアドレッシングの唯一の利点ではありません...それはまた計算をより簡単にします...」
しかしその後、マイケル・ケイは結論として引用されています:
... 1ベースのロジックはXPathとXSLTの正しい選択でした...言語はプログラマー向けではなくユーザー向けに設計されており、ユーザーは本の最初の章を「章」と呼ぶという昔ながらの習慣を持っています1...
誰かが私にそれを説明できますか? (1)XPathはユーザー向けにどのように設計されていますか?XPathの構文の厳格さ、またはXSLTの宣言的/機能的プログラミングの側面に取り組んでいる開発者ではない人を想像することはできません。そして、(2)は、なぜ本当にのXPathの作成者は、1ベースのインデックスを選択することで、近代的なプログラミング言語の規範に反するましたか?
n
非常に不自然でなく、多くの場合エラーを引き起こしn - 1
ます。「モダンプログラミング」ロジックのために倒錯した人にとって、1ベースのインデックス付けを使用し始めることは、楽しくてさわやかな経験になります:)