เพื่อนร่วมงานบางคนและฉันกำลังเปรียบเทียบภาษาในอดีตที่เราได้ตั้งโปรแกรมไว้และกำลังพูดถึงประสบการณ์ของเรากับVBScriptด้วยคุณสมบัติแปลก ๆเช่นดัชนีที่อิง 1 รายการแทนที่จะเป็นดัชนีที่อิง 0 เหมือนกับภาษาอื่น ๆ เกือบทั้งหมดมีเหตุผลว่ามันเป็นภาษาสำหรับผู้ใช้ (เช่น Excel VBA) แทนที่จะเป็นภาษาสำหรับนักพัฒนา
จากนั้นก็มีคนพูดว่า " XPath มีดัชนี 1 ฐานด้วย " ซึ่งฉันไม่อยากจะเชื่อเลยจนกว่าจะพบบทความนี้ซึ่งมีหลายเหตุผลที่ให้เหตุผลว่าเป็นแนวทางที่อิง 0รวมถึงบางส่วนจาก Michael Kay เอง:
- "... การจัดทำดัชนีแบบศูนย์มีแนวโน้มที่จะทำให้สูตรดัชนีง่ายขึ้นเมื่อเข้าถึงอาร์เรย์หลายมิติด้วยนิพจน์การเข้าถึงอาร์เรย์แบบมิติเดียว"
- "เมื่อจัดการตารางหรือสมัครสมาชิกเป็นสตริงการกำหนดแอดเดรสแบบศูนย์มักจะสะดวกกว่ามาก"
- "... การกำหนดแอดเดรสฮาร์ดแวร์ไม่ใช่ประโยชน์เพียงอย่างเดียวของการกำหนดแอดเดรสแบบ 0 เท่านั้น ... แต่ยังช่วยให้การคำนวณง่ายขึ้น ... "
แต่ Michael Kay ถูกยกมาเป็นข้อสรุป:
... ตรรกะแบบ 1 เป็นตัวเลือกที่เหมาะสมสำหรับ XPath และ XSLT ... เนื่องจากภาษาได้รับการออกแบบมาสำหรับผู้ใช้ไม่ใช่สำหรับโปรแกรมเมอร์และผู้ใช้ยังคงมีนิสัยล้าสมัยในการอ้างถึงบทแรกในหนังสือเป็น Chapter หนึ่ง...
ใครช่วยอธิบายให้ฉันฟังหน่อย (1) XPath ออกแบบมาสำหรับผู้ใช้อย่างไร? ฉันนึกภาพไม่ออกว่าใครที่ไม่ใช่นักพัฒนาซอฟต์แวร์กำลังทะเลาะกับความแข็งแกร่งทางวากยสัมพันธ์ของ XPath หรือลักษณะการเขียนโปรแกรมเชิงประกาศ / ฟังก์ชันของ XSLT และ(2) เหตุใดผู้สร้าง XPath จึงขัดกับบรรทัดฐานของภาษาโปรแกรมสมัยใหม่โดยการเลือกดัชนีแบบ 1
n
n - 1
สำหรับใครก็ตามที่มีความคิดในทางที่ผิดเนื่องจากตรรกะ "การเขียนโปรแกรมสมัยใหม่" การเริ่มใช้การจัดทำดัชนีแบบ 1 ฐานจะเป็นประสบการณ์ที่เพลิดเพลินและสดชื่น :)