From: Gregory Seidman Date: 2006-03-29T02:38:30+09:00 Subject: Re: Why do some methods names which replace the content in place doesn't have the "!" sign? On Tue, Mar 28, 2006 at 11:51:05PM +0900, Peter Hickman wrote: } Gregory Seidman wrote: [...] } >Have you programmed in C++? There is a great deal of value to the idea } >of const instances of objects which only allow const methods to be } >called on them. I'm not claiming that Ruby should necessarily support } >such a thing, but I can certainly understand the desire for it. } } I do program is C++ but, as I've said in another reply, I fail to see how } this is supposed to be of benefit in a dynamic language such as Ruby and } also how would you propose to implement it? [...] The simplest implementation is to override the send() method and list non-const methods somewhere. In the send method, check whether the object is marked as const and throw an exception if a non-const method is called. There are more complicated implementations, but that's the easiest one. } >There is no reason to be insulting. It is not unreasonable to expect [...] } I was not being insulting, I honestly think that the poster does not } understand the issues. To understand a language you have to learn to use } it, once you do you get passed such superficial issues, such as the use } of ! on the end of a method name, they tend to become forgotten like the } lack of a prefix / postfix increment / decrement operator that people } coming from C++ and Java seem to stumble over as if it was a major } issue. Sure Lisp has lots of brackets and you have to indent things in } Python but once you learn the language these are no longer issues. When } people have problems with Lisp brackets, Python indents or Ruby !s they } haven't even got as far as the syntax of the language let alone gained } an understanding of the heart of the language. Therefore I tend to be } abrupt with such people that then have the temerity to *fix* the } problems that is nothing more than their lack of experience. Only dead languages never change, and Ruby is emphatically not dead. Pleasantly, Ruby is a language in which the community has some say. Matz reads the mailing list (at least to some unknown extent; I've seen him reply) and if a sufficiently compelling and clear argument for a particular feature is posted, perhaps he'll consider it. I think you are also confusing his mediocre English skills with a mediocre understanding of programming languages. --Greg