From: Leo Razoumov Date: 2001-03-10T06:10:02+09:00 Subject: [ruby-talk:12358] Re: FEATURE REQUEST: 'my' local variables Arnaud, I hope you heard about "locality principle" in software construction. This principle underlines both structural and OO programming. A programmer should be able to control side effects of any given scope if he needs to. --Leo >>>>> "AM" == Arnaud Meuret writes: >> Suddenly your program goes crazy because someone already introduced local AM> 'i' in >> one of the enclosing scopes might be 200 lines earlier and it holds some AM> other >> magic number like 12345. Now my innocently looking 'for' loop resets the AM> value >> of 'i' to 10 which is a BUG. AM> Am I right to be shocked by some points (3) here ? AM> What kind of collaborative programming is that ? AM> 1) Two (at least apparently) developpers working on the same "function" AM> (enclosing scopes) AM> and unaware of the current set of local variables AM> 2) A "function" (enclosing scopes) more than 200 lines big ! AM> 3) An *innocent* 'for' loop with i as iteration variable !!!!!! I didn't AM> know such a thing existed ! AM> I suppose you might just as well write an innocently looking Hannibal AM> Lecter ! AM> How can it be decently requested that a language protects you from such a AM> density of Bad Things(tm) ? AM> I am aware that local variables in ruby blocks, with possibly nested scope AM> bindings and stuff can be tricky to handle for a newcomer BUT the quoted AM> argument is a little bit too much. AM> Arnaud MEURET AM> CWS AM> Software Architecture