You know, you can always type: s = 'Hello World' puts s[1,s.length - 1] Maybe that's a bit wordy for you? I think Ruby's use of [] really follows convention that you are accessing an index. That is what most programmers think of when they see []. If you provide a single Fixnum, one would expect you would get back the contents of that index, and since strings are arrays of characters, that is what you are indeed getting back.