BrunoK: programmers count from zero, so I corrected that..
I dont know if you mean to be ironic.
Any way in my first years of programming, (late 70's) and of course if my memory does not fail, both BASIC and Cobol where indexed with first element at (1) and surprisingly, except in geometry, during my brief studies, tables where based at 1.
Then later I tried a bit of C that was Offset 0 based, I noticed that the disgustingly slow Basic used on mini had an Option base 0 possibility, and articles in Byte, Dr Dobb's etc where very base 0 oriented.
Switching to delphi (3 I think) throw-ed me full in 0 based offset calculations.
Windows is fully base 0 offset, a scrollbar with a min of 0 and a range of 100, f. ex., has a max of 100 which is an
outer bound. It is very practical for size calculation and lots of other things.
Regrettably many non windows widget sets do not see things this way and it makes life difficult when trying to normalize behavior of controls like the TScrollBar and probably also for some control sizes/position calculations.
AND most important, if you pass an array to a procedure or function it is always 0 based in FPC, Delphi etc...