Bazı meslektaşlarımız ve ben, programladığımız geçmiş dilleri karşılaştırıyorduk ve neredeyse her dilin sahip olduğu gibi 0 tabanlı dizinler yerine 1 tabanlı dizin gibi tuhaf özellikleriyle VBScript ile olan deneyimlerimiz hakkında konuşuyorduk. geliştiriciler için bir dil yerine kullanıcılar için dil (örn. Excel VBA).
Sonra birisi , Michael Kay'ın kendisinden bazıları da dahil olmak üzere , 0 tabanlı yaklaşım lehine birçok nedenin verildiği bu makaleyi bulana kadar inanamadığım " XPath ayrıca 1 tabanlı dizine sahiptir " dedi :
- "... sıfır tabanlı dizin oluşturma, tek boyutlu bir dizi erişim ifadesine sahip çok boyutlu bir diziye erişirken dizin formüllerini daha basit hale getirme eğilimindedir"
- "tabloları işlerken veya dizelere abone olurken, sıfır tabanlı adresleme genellikle çok daha uygun olur"
- "... donanım adresleme, 0 tabanlı adreslemenin tek yararı değil ... aynı zamanda hesaplamaları da kolaylaştırıyor ..."
ama sonra Michael Kay, şu sonuca varıyor:
... 1 tabanlı mantık, XPath ve XSLT için doğru seçimdi ... çünkü dil, programcılar için değil, kullanıcılar için tasarlandı ve kullanıcılar hala bir kitabın ilk bölümüne Bölüm olarak atıfta bulunma gibi eski moda bir alışkanlığa sahipler Bir...
Biri bunu bana açıklayabilir mi? (1) XPath kullanıcılar için nasıl tasarlandı? XPath'in sözdizimsel katılığı veya XSLT'nin bildirimsel / işlevsel programlama yönleriyle uğraşan bir geliştirici olmayan birini hayal edemiyorum. ve (2) XPath'in yaratıcıları neden 1 tabanlı bir dizin seçerek modern programlama dilleri normuna gerçekten karşı çıktı?
n
çok doğal olmayan ve sıklıkla hatalara yol açacak şekilde belirlenmesine de izin verir n - 1
. "Modern programlama" mantığından dolayı sapkın olan herkes için, 1 tabanlı indekslemeyi kullanmaya başlamak