Greetings of the season Wayne! Hope you are enjoying the summer weather as much as I am ;-)
The aim of Xojo should be 'low-code', irrespective of an individual programmer's zero or one-based preference. What I think this means is:
1) Everything should have both a
Count and a
Ubound so people can test in the way that suits their circumstances.
2) There should be a new
Empty data type / function so I can say
Do Until Array.Empty or
If String.Empty Then without having to know if it's
Count= 0 or
Size = 0.
3) Everything should have an
LBound including things that have a Count.
4) Arrays, Dictionaries etc should all have an optional OptionBase parameter in their dimensioning.
Otherwise everything should stay the same as the default so no user code gets broken or starts operating in unexpected ways causing bad things to happen.
IMHO deciding that zero-base is the universal future of Xojo is about compiler-friendly low-level code not use case-friendly low-code, since in the real world most things start at number 1. However my point is the language should be rich enough to allow safe interoperability between zero and one-based addressing.