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
