Beberapa kolega dan saya membandingkan bahasa masa lalu yang telah kami programkan dan berbicara tentang pengalaman kami dengan VBScript dengan fitur-fiturnya yang aneh seperti indeks berbasis 1, bukan indeks berbasis 0 seperti yang dimiliki hampir setiap bahasa lain, alasannya adalah bahwa itu adalah a bahasa untuk pengguna (misalnya Excel VBA), bukan bahasa untuk pengembang.
Kemudian seseorang berkata, " XPath juga memiliki indeks berbasis 1 " yang tidak dapat saya percayai sampai saya menemukan artikel ini yang memuat banyak alasan yang mendukung pendekatan berbasis 0 termasuk beberapa dari Michael Kay sendiri:
- "... pengindeksan berbasis nol cenderung membuat rumus indeks lebih sederhana saat mengakses array multi-dimensi dengan ekspresi akses array satu dimensi"
- "ketika menangani tabel, atau berlangganan ke string, pengalamatan berbasis nol seringkali jauh lebih nyaman"
- "... pengalamatan perangkat keras bukan satu-satunya keuntungan dari pengalamatan berbasis 0 ... ini juga membuat komputasi lebih mudah ..."
tapi kemudian Michael Kay dikutip sebagai kesimpulan:
... Logika berbasis 1 adalah pilihan yang tepat untuk XPath dan XSLT ... karena bahasanya dirancang untuk pengguna, bukan untuk pemrogram, dan pengguna masih memiliki kebiasaan kuno yang merujuk ke bab pertama dalam buku sebagai Bab Satu...
Bisakah seseorang menjelaskan itu padaku? (1) Bagaimana XPath dirancang untuk pengguna? Saya tidak bisa membayangkan siapa pun yang bukan pengembang yang bertengkar dengan kekakuan sintaksis XPath atau aspek deklaratif / fungsional-pemrograman XSLT. dan (2) Mengapa benar-benar pencipta XPath bertentangan dengan norma bahasa pemrograman modern dengan memilih indeks berbasis 1?
n
, bukan yang sangat tidak wajar dan sering menyebabkan kesalahan n - 1
. Bagi siapa pun yang menyimpang karena logika "pemrograman modern", mulai menggunakan pengindeksan berbasis 1 akan menjadi pengalaman yang menyenangkan dan menyegarkan :)