From: Evan Webb Date: 2006-02-08T02:00:18+09:00 Subject: Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) Having never used VB, I had no idea it had a with. Well, then thats at least some indication that the concept is semi-mainstream. As for the blocks, I'm not saying that blocks are confusing, I'm saying module_eval/class_eval/instance_eval are confusing for a beginning user, especially when they usage is hidden. For instance: def on_object(&block) Object.module_eval(&block) end on_object do MyConst = 8 end That gets confusing for beginning users because the block has been carried away and executed in a completely different context than it was created. Normally, a block is executed in the context it was created, since thats the whole point of blocks. At any rate, it's entirely possible I'm underestimating people again. I had a rough day doing IT work yesterday, and you know how that can lower your faith in people's abilities. :) - Evan On 2/7/06, James Britt wrote: > Evan Webb wrote: > > I'm not sure we even need the 'with' syntax. Even if we do, it breaks > > the programmers context in a way that we might not want to have to > > explain constantly. I can just hear the questions now... > > > > "Why are my method calls inside a with being executed on the wrong object?" > > > > "Well, thats because with changes self for it's body, and so you have > > to be careful what you call in there." > > VB users never seemed to have a problem with the concept of 'with', and > I think it unlikely Ruby users would, either. > > > > > repeat.. > > > > While the more hardcore of us are use to using blocks to enter into > > new and strange contexts (module_eval/class_eval/instance_eval oh > > my!), pushing this to the normal user is not a decision that should be > > made lightly. > > > Using blocks *is* normal Ruby usage. > > I think you serous underestimate what people can understand and > correctly use. > > James > > -- When I do good, I feel good; when I do bad, I feel bad, and that is my religion. -- Abraham Lincoln (1809 - 1865)