<thoran / thoran.com> wrote in message news:c65d5289beae381352039cc498d11116 / shiny... > Sorry for the poor attempt at quoting and the ignorance of the > convention, but my mail client seems to be crapping out at the size of > the ruby-talk mailbox!?... > > > As to the following: > > "Well, to be fair, you did more than this. You suggested that, perhaps, > hashes are actually ordered and that none of us really knows what a hash > is... You also accused it of not following the PoLS, which many Ruby > programmers feel strongly about. Considering people's knowledge of > hashes, > even outside the context of Ruby, and your self proclaimed ignorance > (although this was not in your original post), these are bold statements > and are bound to illicit bold responses." > > I wrote: "It doesn't seem very PoLS to have it reordered, although > perhaps one shouldn't be surprised that a hash is unordered?" > > This is not a bold statement. I don't understand how you could have > understood that as a suggestion that "hashes are actually ordered"? It > looks more like a question to me and reeks of doubt as to whether my > (increasingly formerly held) expectation was correct or reasonable... This is so dishonest of you. You take one sentence and remove all the context around it and then proclaim "this is not a bold statement." Here's what you said in it's entirety: > It doesn't seem very PoLS to have it reordered, although perhaps one > shouldn't be surprised that a hash is unordered? Perhaps Matz is > convincing us of this statement? Said Matz unto the flock in a loud, > Godly voice: "Make no assumptions about the order of hashes!" This is a bold statement, especially from a self proclaimed newbie. You're suggesting that the only reason that people accept that hash elements are unordered is because Matz says so and we're just blindly believe him without checking up on these ideas, ourselves. All this, on top of the (erroneous) assumption, that you made, that hashes are inherently ordered. What gave you this idea, by the way? > As to one's ignorance. I think that the beginner's mind should be one's > default starting position at all times, since it allows one to critique > one's self more readily. Such is imbued with a calm doubt. I'm not sure what you're getting at, here. Are you saying we should keep the beginner in mind when programming, or designin a programming language, or when addressing questions about programming? > As to the following: > > "Personally, I feel you are misunderstanding the PoLS but I've already > addressed that in another post." > > As you wrote, if I'm surprised that rand() produces different numbers, > then I am still surprised. The question is as to whether it is > reasonable to be surprised. What is the base of expectations? What is a > reasonable expectation of what hashes will and won't do? That's exactly the problem. Because expectations are so subjective, it's unreasonable to say "hey, I'm surprised!" and declare that the PoLS was broken. Who's to say why you were surprised or objectively say if your surprise was "reasonable" or not. Instead, it's more prudent to say whether something is consistent or not. Personally, I interpret the PoLS as meaning this: if you know the language well, then the language will cease to surprise you. At first, this may seem like a tautology. How can a language surprise you if you know it so well? The point is that there are ways a language can surprise you even if you "know it well." For instance, if a language is highly inconsistent, then even if you know most of the rules of the language, the exceptions can still confuse you and cause you to make an error and, thus, surprise you. Python has traits like this, for instance. > More generally: > > Also, to whomever said that that I had said or implied as much, I never > made the claim that Matz had used the term PoLS. I may have made that > claim, given or having taken the opportunity to do so, but I haven't. No one said that you said this. I was saying that even Matz doesn't use this term to describe his own language, so you might think twice about doing so... > I am not inclined to 'dumb down' Ruby. If I wanted to be > straight-jacketed or kept out of the drawer with all the sharp knives, > then I'd be using Python. (That there IS a bold statement.) I have no idea what this paragraph means. > Ruby must balance power with simplicity, and elegance with complexity. ...and it does...