From: "David A. Black" Date: 2007-12-05T02:14:18+09:00 Subject: Re: Why are "Array#push" and "pop" not "push!" and "pop!"? Hi -- On Wed, 5 Dec 2007, Bill Kelly wrote: > Maybe I should instead be asking what you had in mind when you said, > "In !/non-! pairs, it starts to be able to say something." What is > this something that is said by a paired !/non-! relationship? I know what you mean about ri, but I check ri (or equivalent) for every method, at some point, whether it has a ! or not, so I don't think just peppering one's methods with occasional !'s really adds anything from that perspective. I think I'm about tapped out on this one, but I'll give it another shot :-) I really like the convention that Matz uses, and every other use of ! in method names has struck me as impressionistic and uncommunicative. It would certainly be possible to have exit/exit_without_finalizers and reverse/reverse_in_place. I just think that Matz's abstraction of these as "dangerous", and dedication of the ! to expressing that abstraction, is strikingly elegant and has the weight of some kind of logic behind it. It hits a narrower target -- it means that there's a whole class of tricky (or whatever) methods that have to find some other way to express their trickiness -- but I think it's worth it. David -- Upcoming training by David A. Black/Ruby Power and Light, LLC: * Intro to Rails, London, UK, December 3-6 (by Skills Matter) See http://www.rubypal.com for details and 2008 announcements!