From: transfire@... Date: 2006-06-04T07:40:00+09:00 Subject: Re: Another Look at SELECTOR NAMESPACES Austin Ziegler wrote: > On 6/3/06, transfire@gmail.com wrote: > > Austin Ziegler wrote: > >> Fortunately, the choice isn't yours. > > Wwhy do you have to go and do that? Does making a little digg like > > that support your argument? > > It's not a dig. It's a statement of fact: the choice *isn't* yours. The fact that "the choice isn't yours" isn;t the problem. And obvious. It's the "fortunately" part that is diggish and you know it. > It isn't mine, either. However, you presented this as an either-or > proposition, which this most certainly is not. Not really I just stated my opinion: I just think Ruby should embace it with a more wholistic solution or back off. JMO. > I have serious doubts > about the utility of selector namespaces (just as I have serious doubts > about the utility of namespace "renaming" as some people seem to be > asking for recently because of bad naming decisions by yet other > developers). I think that the whole desire for a feature like > "require_wrap" is foolish. > > That said, I see some value, given Ruby's open classes, in having the > ability to have multiple methods named the same thing but with a > distinguishing namespace. I think that there's too many unanswered > questions to wholeheartedly support them, but they may prove useful. > (For example, when is one defining a method in a namespace vs. > overriding a method?) > > What I am absolutely certain about is that dynamic resolution of > selector namespaces is a disaster waiting to happen. I would almost > rather see Ruby adopt static typing than see dynamic resolution of > selector namespaces and/or the modification of literal resolution based > on such dynamic resolution. Because when you do *that*, you can no > longer trust even the most basic syntactical rules of Ruby and what you > have is less Ruby than Ruby with static typing would be. You're really overstating the issue. When you require any lib you're putting trust into it's functionality. It's not magical, you're specifically asking for certain behavior. Why do you feel parts of the core system are sacred? Isn't that more-or-less the way of non-agile languages? In Ruby we CAN extend the core --we DO extend the core. Being well aware of this, we also know of some of the limitations that make it difficult to resuse those extensioins. The idea of selector namespaces would allow us to do that. If its a bad idea, as you say, then the bad idea must come from the ability itself. > I *will* admit that I view most of the suggestions that you, personally, > make with a great deal more suspicion because I think that you ask for > things that are ten times more "clever" than they would ever be useful. > Most of the things that you've proposed that I have opposed fall into > the category of YAGNI, too. (I also take issue with some of your > syntactical direction, which I think reduces readability and > understandability of code.) First of all, Selector Namespace is not my idea. Matz has talked about it himself. I was just sharing an interesting proximity to it that can be achieved in current code. That's it. Why do you act like the "suggestions" I make are somehow like legislation being brought to the floor? I mean really! Why do I always get this crap? Is it becuase I'm the only peson around here that's willing to explore a loose idea just to see where it goes? I guess you and your ilk are just too afraid of looking stupid. So you make yourself look smart by trashing the ideas of others. Is that it? No? Well I call Bullshit with the last paraenthecial comment of your paragraph as case-in-point. You've done this many times now Austin. You make a negative comment about me that has no contextal support, so essentially no meaning --it's just there to slander me. In this case you say you have an issue with my "syntatical direction" What the hell is that supposed to mean? You spout off these pataitudes and you never bother to give a single example to back them up. > > I just don't see your point when what you say is *unnecessry arcana* > > can already be done --indeed is already being done. There just happens > > to be odd exceptions, due to the lack of a more managed approach. For > > example, not unlike the one I already gave. > > > > --- foolib.rb --- > > > > class X > > class String > > def self.new ; 0 ; end > > end > > end > > > > --- bar.rb --- > > > > require 'foolib' > > > > class X > > def mystring > > String.new( "Extended!" ) > > end > > end > > > > x = X.new > > x.mystring #=> 0 > > (1) That's not selector namespaces as I understand it. Uh yea. Did you miss the point? > (2) The fact that "String.new" is being used is an indication that > something is different. You have an amazing ability to generailize. No doubt you can tell Time.new from Time.new as well. > (3) There's no way that the alteration of basic syntactical rules could > *possibly* be easier to understand. Er. Easier to undersand than _not telling anyone about the alteration of basic syntactical rules_, which can easily happen today and is the crux of this particular point that you somehow manged to utterly miss --and I really have to wonder, perhaps out of spite b/c I know you are not dull. > Far better to work *with* other people than around them, if at all > possible. There's an idea. Perhaps you can think about that and instead of critisizing my techne without substantiation, you could actually offer constructive suggestions on how I might improve it. I would greatly appreciate that. There is no doubt Austin, you're an excellent coder. I wish I could be as talented as you. But maybe you should take your own advice and come down from your perch and actually work *with* us mere mortals. It certainly would be better than these pointless "lighting bolts". T.