No particular qualifications to comment on this (Education: Physics, Electrical Engineering; Engineering Maths - Work experience: mainly tinkering...) but I do have an opinion.
I am happy that j has a single/fixed index origin and that it is 0. I think the makers of typewriters (choosing 0 as start of spaces) were more wise than Hollerith and his punched card (actually it was probably some other engineer at IBM that started labeling cards with column 1...). I think * is a more fitting "answer to the ultimate question" than + (and I'm pretty sure the folks who assigned code points for ASCII started from 0). I have never found IO 0 to be a hindrance - and back, last century, when I used APL - I typically made it the "default" in my workspaces. My favorite example of IO issues was how the BASIC standards committee (ca. mid '70s) dealt with it - they didn't have a system variable or any such "complication", they simply allocated arrays with each dimension having an extra element. Then the programmer could think in either origin... It always seemed to me that might lead to some confusion and obscure bugs, but I never actually tried doing it that way - besides, things like my favorite APL/j function (%.) would be intrinsically confused.... Not to mention bizarre results from simple things like $ and # - I suppose BASIC avoids the shape/count and related issues because the size of the array is declared (and padded for convenience...), gaining the approval of much of the programming community. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
