From: Bob Hutchison Date: 2005-10-19T00:19:44+09:00 Subject: Re: A couple of questions/statements from a Ruby neohacker On Oct 18, 2005, at 10:40 AM, Christophe Grandsire wrote: > Selon Bob Hutchison : > > >> >> Given my druthers, I'd have considered a convention where when two >> methods are provided, one destructive the other not, to mark them >> both. There would be no marker if there is no choice. So we'd have >> something like 'action!' and 'action+' (or whatever, that second >> marker is another debate) and no method simply called 'action'. >> >> > > The problem I see with this proposal is that it would decrease the > signal/noise > ratio, by adding yet another symbol convention. Also, as someone > with somewhat > of a linguistic background, I can tell that a situation where both > alternatives > are marked, and the unmarked version just doesn't exist, is very > unstable. > People will tend to ignore one of the alternatives and use the > unmarked version > for it instead, going back to the current situation (but maybe not as > consistently). It's a convention rather than a language feature, > which is why I > think it won't survive if both alternatives are marked. You might be right. I don't know that the two marker idea would be necessarily better in the face of evolving software... might be that conventions just don't work in general. Imagine how much would break if 'delete' is eliminated at this stage of the game... the cost would prohibit the convention. > > One of the things I like in Ruby (and I believe others have the > same feeling) is > that it "flows" well, a bit like a natural language. I can "speak" > Ruby, while > I've never been able to "speak" any other language. But like a > natural language > it has a bit of irregularity in its conventions (a very small bit, > and only if > you really want to consider it an irregularity). This is not wrong. > It's part > of what makes Ruby aesthetically pleasing like a natural language. > Changes to > make Ruby's naming conventions to follow stricter rules would > likely break this > beauty, and would make the language "flow" much less nicely, I'm > afraid. > > Matz wrote Ruby to be a programming language for humans rather than > for > computers. We humans can't cope with the rigidity of purely logical > ("computer-like") conventions. They make things look artificial and > cold. Ruby, > on the other hand, is a "warm" language. There's a reason why so > many Rubyists > have a strong commitment towards readable, aesthetic, beautiful > code. And > there's a reason why people get so worked up about purely aesthetic > questions > like the use of -> for lambdas (myself included ;) ). Ruby appeals > to our > aesthetic sense, in a way that no rigidly designed language can. > The naming > conventions, as imperfect as they may be, help towards this > feeling. And that's > why I'm wary of people wanting to modify them to make them more > "logical", as if > rigidity was better than warmth. If the downside is to regularly > get people on > the list asking why delete doesn't have a !, then I'm happy to do > with this > downside. It's better than having Ruby lose its aesthetic appeal. There's nothing wrong with precision, if you are aware of the costs. > > >> I'm not advocating anything here by the way. Other than perhaps that >> this is going to be a source of ambiguity, or perceived ambiguity (if >> there's a difference, and that's another debate :-) that keeps coming >> up. >> >> > > Frankly, I prefer it coming up again and again than change the > aesthetics of the > language :) . After all, if we didn't have that, what would we be > talking about > all day on Ruby-talk? ;) :-) > -- > Christophe Grandsire. > > http://rainbow.conlang.free.fr > > It takes a straight mind to create a twisted conlang. > > ---- Bob Hutchison -- blogs at Recursive Design Inc. -- Raconteur --