Một số đồng nghiệp và tôi đã so sánh các ngôn ngữ trong quá khứ mà chúng tôi đã lập trình và đang nói về trải nghiệm của chúng tôi với VBScript với các tính năng kỳ lạ như chỉ mục dựa trên 1 thay vì chỉ mục dựa trên 0 như hầu hết các ngôn ngữ khác, lý do cho rằng đó là ngôn ngữ cho người dùng (ví dụ: Excel VBA) thay vì ngôn ngữ cho nhà phát triển.
Sau đó, có người nói, " XPath cũng có các chỉ mục dựa trên 1 " mà tôi không thể tin được cho đến khi tôi tìm thấy bài viết này trong đó có nhiều lý do được đưa ra theo hướng tiếp cận dựa trên 0, bao gồm một số từ chính Michael Kay:
- "... Lập chỉ mục dựa trên zero có xu hướng làm cho các công thức chỉ mục đơn giản hơn khi truy cập vào một mảng nhiều chiều với biểu thức truy cập mảng một chiều"
- "khi xử lý các bảng hoặc đăng ký thành chuỗi, địa chỉ dựa trên số 0 thường sẽ thuận tiện hơn nhiều"
- "... địa chỉ phần cứng không phải là lợi ích duy nhất của địa chỉ dựa trên 0 ... nó cũng giúp việc tính toán dễ dàng hơn ..."
nhưng sau đó Michael Kay được trích dẫn như kết luận:
... Logic dựa trên 1 là lựa chọn phù hợp cho XPath và XSLT ... vì ngôn ngữ được thiết kế cho người dùng, không dành cho lập trình viên và người dùng vẫn có thói quen lỗi thời này khi đề cập đến chương đầu tiên trong một cuốn sách như Chương Một...
Ai đó có thể giải thích điều đó với tôi? (1) XPath được thiết kế cho người dùng như thế nào? Tôi không thể tưởng tượng bất cứ ai không phải là nhà phát triển tranh cãi với sự cứng nhắc cú pháp của XPath hoặc các khía cạnh khai báo / lập trình chức năng của XSLT. và (2) Tại sao những người sáng tạo XPath thực sự đi ngược lại chuẩn mực của các ngôn ngữ lập trình hiện đại bằng cách chọn chỉ mục dựa trên 1?
n
, không phải là rất không tự nhiên và thường dẫn đến lỗi n - 1
. Đối với bất kỳ ai bị biến thái do logic "lập trình hiện đại", bắt đầu sử dụng lập chỉ mục dựa trên 1 sẽ là một trải nghiệm thú vị và mới mẻ :)