The end user doesn't have to know anything about the record number.
For the
Java developer it makes more sense starting them from 0 because everything else in Java does (trust me, I worked for 3 years in a company where we had to mix Java with a custom language that used 1 based arrays, it was a constant headache to remember which method calls used 1 based indices and which used 0 based indices).