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 kesalahann - 1
. Bagi siapa pun yang menyimpang karena logika "pemrograman modern", mulai menggunakan pengindeksan berbasis 1 akan menjadi pengalaman yang menyenangkan dan menyegarkan :)Jawaban:
Array dan indeks koleksi lainnya mewakili offset memori, jadi cukup logis mereka mulai dari nol. Indeks XML dan XPATH mewakili posisi dan hitungan, jadi secara logis indeks dimulai dari satu (dan oleh karena itu nol mewakili "kosong")
sumber
Untuk menjawab pertanyaan ini, kita harus memeriksa sejarah beberapa teknologi.
RSS XML XSLT dan XPath History
Versi 0.9 dari RSS awalnya dirilis sebagai Ringkasan Situs RDF pada tahun 1999 oleh beberapa orang di Netscape untuk portal my.netscape.com Netscape. Belakangan tahun itu, namanya diubah menjadi RSS (Rich Site Summary) dengan pembaruan v0.91. Pengembangan proyek berpindah tangan beberapa kali, tetapi RSS versi 1.0 dirilis pada Desember 2000. Dengan pembaruan v1.0, RSS menyertakan dukungan untuk XML.
Selama tahun 2002 v2.0 dirilis pada bulan September sebagai RSS (Really Simple Syndication) dan mulai berkembang menjadi teknologi internet utama. Dalam sejarah awalnya, RSS feed (dan data XML yang ada di dalamnya) dibaca oleh manusia dalam format mentah. Blog dan sumber berita lainnya menggunakan RSS feed dan XML untuk menghasilkan informasi yang terus diperbarui. Karena XML dibaca oleh manusia biasa (bukan pemrogram), XPath dan XSLT juga harus mudah dipahami, sehingga manusia biasa ini tidak akan kewalahan oleh kerumitan saat berinteraksi dengannya. Itulah mengapa XPath meniru gaya URI, yang sudah dikenal oleh pengguna akhir. Salah satu konsesi yang dibuat agar dapat dibaca oleh pengguna, adalah dengan menggunakan teknik penomoran model lama, yaitu indeks berbasis-1, bukan indeks berbasis-0.
Meskipun RSS feed dan XML dibuat agar dapat dibaca oleh kebanyakan orang, pembaca RSS dikembangkan untuk menyediakan antarmuka yang lebih menyenangkan bagi manusia untuk membaca RSS feed. Sekarang, data mentah RSS dan XML dibaca hampir secara eksklusif dengan semacam antarmuka pembaca atau grafis. XML masih sering digunakan (mungkin permanen) di seluruh web, tetapi disamarkan oleh antarmuka pengguna grafis yang mewah untuk memberikan pengalaman yang lebih baik bagi pengguna akhir.
* Istilah " manusia biasa " mengacu pada manusia yang bukan pemrogram
sumber