From: Frank Church Date: 2007-07-17T14:58:11+09:00 Subject: Re: The Pebble in the Ruby Shoe On 16/07/07, Raphael Gillett wrote: > > > Ruby aims to be a human friendly programming language that embodies the > principle of least surprise. However, there is an important feature of > the language that, despite being a glaring exception to this laudable > goal, seems to have crept unquestioned into the Ruby core. It is a > rebarbative and truly medieval practice which everyone knows causes > endless confusion, countless unnecessary errors, and a great deal of > wasted programming time in all languages that incorporate it, e.g., C, > Java. In violation of Ruby's ethos, this feature is present purely to > suit the compiler/interpreter at the expense of the person. > > The pebble in the Ruby shoe is the counter-intuitive use of indexing of > elements of arrays, strings, etc., from 0 to n-1 instead of the more > natural 1 to n. Like prisoners who have got used to their chains, the > Ruby community seems to have meekly accepted this impediment to clear > thinking. It is particularly puzzling that Ruby should hobble its > users in this way, because it is manifestly unnecessary (e.g., Fortran > and Pascal don't do it). > > -- > Posted via http://www.ruby-forum.com/. > > Is this some kind of troll? My own experience with programming makes me feel that counting arrays from 0 is the natural thing. If you are handling an array 5 items starting from x, going from x+0 to x+4 is more concise than going from x+1-1 to x+5-1. There are other examples in which I have found it convenient. Chinese count birthdays starting with the child's first year as year 1. As a westerner do you consider it natural describe a child as 2 years old on its "first" birthday? It may be counterintuitive but in the mathematical world it is quite natural.