> Suddenly your program goes crazy because someone already introduced local
'i' in
> one of the enclosing scopes might be 200 lines earlier and it holds some
other
> magic number like 12345. Now my innocently looking 'for' loop resets the
value
> of 'i' to 10 which is a BUG.

Am I right to be shocked by some points (3) here ?

What kind of collaborative programming is that ?

1) Two (at least apparently) developpers working on the same "function"
(enclosing scopes)
   and unaware of the current set of local variables
2) A "function" (enclosing scopes) more than 200 lines big !
3) An *innocent* 'for' loop with i as iteration variable !!!!!! I didn't
know such a thing existed !
   I suppose you might just as well write an innocently looking Hannibal
Lecter !

How can it be decently requested that a language protects you from such a
density of Bad Things(tm) ?

I am aware that local variables in ruby blocks, with possibly nested scope
bindings and stuff can be tricky to handle for a newcomer BUT the quoted
argument is a little bit too much.

Arnaud MEURET 
CWS
Software Architecture