An issue that I have often pondered.

I am a professional civil engineer.

My article on Origins appeared in Vector Vol 4.3, p. 67, and I haven't
changed my position. I'm an origin 1 person, but I object to the
terminology. Everybody knows origins are at 0. It is just whether we begin
counting at 0 or 1. From my perspective we have traditionally, rationally,
begun counting with 1. Counting beans out loud we could say 'zero' just
before we pick up the first bean and say 'one' as we put it into the empty
pile. Then our 'zero' is saying this pile is empty. This would be rational
and consistent with the so-called 1 origin.

Dijkstra's argument for 'origin 0' is not persuasive to my mind. The
hardware storage of numbers does tempt one to think of 00000000 as the first
of 256 numbers, and the offset issue in indexing again tempts one to adopt
the first item as 0, all of which can and has been done. It didn't need to
be - but it was convenient to the early IT guys - and it has now become part
of their culture. Understanding this makes me happier to accept it, even
though I think it has been a mistake.

I always used quad IO as 1 in APL, so moving to J, this was a major
difficulty for me. I accept that supplying the *choice* of 0 or 1 is not a
great idea. I recognise that J is geared to origin 0 and I'm getting quite
used to it. But J could, I suspect, have been geared to the so-called origin
1. Dyadic i. is a classic where so-called origin 1 would have been better:
those items in y not represented in x would return a 0 rather than >:#x.
Counting from the back with negative indices is another one where quad IO of
1 would seem to be more consistent.

J is just amazing as it stands. Thank you, everybody.

Graham





----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to