# Re: Why Does Hash Apparently Reorder Its Internal Representa

**URL:** <https://www.ruby-forum.com/t/re-why-does-hash-apparently-reorder-its-internal-representa/65944>\
**Category:** Ruby\
**Created:** [August 22, 2006, 4:10pm UTC](https://www.ruby-forum.com/t/re-why-does-hash-apparently-reorder-its-internal-representa/65944 "2006-08-22T16:10:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 22, 2006, 4:10pm UTC](https://www.ruby-forum.com/t/re-why-does-hash-apparently-reorder-its-internal-representa/65944/1 "2006-08-22T16:10:28Z")

</div>

> 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.”

That’s not what I meant. As to whether it is reasonable for you to  
keep misinterpreting me, well…?

What I meant by all of that which you quoted is the same as what I  
meant by the lesser amount I subsequently quoted, since I was saying  
that in Ruby, Matz was CORRECTLY representing what is a reasonable  
expectation of hashes and that therefore my expectation was probably  
incorrect. There is no dishonesty or contradiction.

And if there was a contradiction on my part and I quoted that bit  
which was supportive of it not being a bold statement and I didn’t  
quote the bit for which it was more supportive of it being a bold  
statement, then by default I can’t have made a bold statement anyway,  
since each would be inconsistent with and undermine the other.  
Ironically enough you’ve contradicted yourself!

And again you misinterpret insofar as my having called myself a  
newbie, when I didn’t say that either. Being rusty, or somewhat  
experienced in one thing does not a newbie make. Nor do I care; I  
simply don’t care if one is a newbie or not. I allow for anyone to be  
smart and everyone to be stupid.

“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.”

If I were to agree with that then I would have no opinions about  
anything. Regardless of the distinction between having an unmet  
expectation and expressing that unmet expecation, then I’d still  
disagree with either one as being a reasonable basis for being  
dismissive of my own reactions as being PoLS or not as I see it.

Furthermore, and I have to say it again, I never said that PoLS was  
broken. I asked if it was; I suggested that it might be, but clearly  
expressed doubt as to whether it was. Still, even if I had. So? I  
can expect anything I like can’t I? What makes sense for me maybe  
doesn’t make sense for you. Discussion ensues and so on.

What it appears you are really saying is that it is unreasonable for  
ME to be surprised because I’m a dickhead. Or, did I misinterpret  
you?

“Who’s to say why you were surprised or objectively say if your  
surprise was “reasonable” or not.”

Matz? Yeah, Matz. He’s ultimately the arbiter of style and  
expectation. He’s done pretty well so far and I’m happy to go with  
him quite a long way.

> 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…”

OK, I’ll think twice about doing so if I have ever have that thought.  
If you mean use of the term at all, then I think it is in common  
enough usage in relation to Ruby for me to use it as something by  
which we can assess our expectations—Matz having uttered this or  
not. Although PoLS is on his blog! See  
[Matzにっき(2006-06-01)](http://www.rubyist.net/~matz/20060601.html#c08). Although my Japanese  
is almost non-existant, so I don’t know what it says. He could have  
written that it’s nonsense…? Also see  
[http://wiki.rubygarden.org/Ruby/page/show/PoLS](http://wiki.rubygarden.org/Ruby/page/show/PoLS).

Additionally, that page is something which informs the following:

> 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.”

It simply means that Ruby shouldn’t cater for ill-informed ideas that  
Hash will necessarily order. I want a sportscar, not a factory pimped  
saloon. I want something that has brevity and a little bit of danger.  
Fly close to the sun or don’t fly at all?

My understanding is that Python is more restrictive insofar as poking  
around in the internals at runtime is concerned and is weaker on  
introspection, and I think it is mooted that much of its Lispyness  
will be curtailed. I don’t want to go back to Logo. If I want safe  
I’ll go back to the little turtles.

So, does my expectation remain contradictory to the need for the  
naturalness requirement of PoLS? I’m not sure. Naturalness itself is  
subjective. Maybe some people like s-expressions? I sure did with  
Lisp. Was it natural though? No. Although I suppose it could have  
been given more time with it. (See next listemail…)

“What gave you this idea, by the way?”

The term hash is sometimes used interchangably with the concept of  
associative array. At least I thought it was. And given some of the  
other listemails I think that claim could be supported. Does anyone  
else think that we need to tighten up our nomenclature? (See next  
listemail…)

Still, you seem to keep claiming that I had this expectation when I  
didn’t. I suppose I’m saying that I can be surprised by something  
without having it known to me that I will have a certain expecation  
because I had a heretofore unrealised expectation. It only became a  
possible to have a conscious expectation until after I was surprised.  
I never claimed that it shouldn’t be this way. I asked if it should  
be other than it is.

I’m considering having a .sig. Which do you like?..  
— If it’s not beautiful, then it’s not right.  
— Some people should stick to programming languages. Natural  
language seems to stretch them.  
— One man’s bug is another man’s feature.

Anyway, enough crap stuffing people’s mailboxes. Let’s stop the  
meta-meta-discussion and cut some code.

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [August 22, 2006, 6:00pm UTC](https://www.ruby-forum.com/t/re-why-does-hash-apparently-reorder-its-internal-representa/65944/2 "2006-08-22T18:00:43Z")

</div>

[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote in message  
news:14a5f04569cfc2084dcddd6385c46e0b@shiny…

> That’s not what I meant. As to whether it is reasonable for you to keep  
> misinterpreting me, well…?

```
I don't know, my interpretation looks reasonable to me. If Matz was

```

representing a reasonable expectation of hashes then why would he be  
“convincing us of this statement?” If it were reasonable, we’d already  
know it because hashes aren’t exaclty obscure. Thus, you must mean that  
this representation is unreasonable…

> inconsistent with and undermine the other. Ironically enough you’ve  
> contradicted yourself!

```
I don't understand this reasoning at all. I never said you

```

contradicted yourself, so your entire line of reasoning was based on a  
false premise…

> And again you misinterpret insofar as my having called myself a newbie,  
> when I didn’t say that either. Being rusty, or somewhat experienced in  
> one thing does not a newbie make. Nor do I care; I simply don’t care if  
> one is a newbie or not. I allow for anyone to be smart and everyone to  
> be stupid.

```
I'm sorry, you never did say you were a newbie. I think I got that

```

impression from the statement “my understanding of hashes, well, it  
isn’t  
very good, not unlike many of my skills” but the assumption was mine.  
I don’t know why you linger around the idea of smart or stupid…

> “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.”
> 
> If I were to agree with that then I would have no opinions about  
> anything. Regardless of the distinction between having an unmet  
> expectation and expressing that unmet expecation, then I’d still disagree  
> with either one as being a reasonable basis for being dismissive of my  
> own reactions as being PoLS or not as I see it.

```
I have plenty of opinions yet I've never mentioned the PoLS.
You can have plenty of opinions and be suprised by many things and 

```

all  
this can be done without the PoLS. It just doesn’t really apply here…

> Furthermore, and I have to say it again, I never said that PoLS was  
> broken. I asked if it was; I suggested that it might be, but clearly  
> expressed doubt as to whether it was. Still, even if I had. So? I can  
> expect anything I like can’t I? What makes sense for me maybe doesn’t  
> make sense for you. Discussion ensues and so on.
> 
> What it appears you are really saying is that it is unreasonable for ME  
> to be surprised because I’m a dickhead. Or, did I misinterpret you?

```
I think this really the heart of the matter.
You have this idea that people (or maybe just me) are attacking you. 

```

I  
assure you, we are (I am) not. What, specifically, made you think that  
I’m  
indirectly calling you a “dickhead.” What, specifically, did you  
interpret  
as an attack on you? People can disagree without it being an attack and  
I  
find it funny that you would assume the worst of people…

> “Who’s to say why you were surprised or objectively say if your  
> surprise was “reasonable” or not.”
> 
> Matz? Yeah, Matz. He’s ultimately the arbiter of style and expectation.  
> He’s done pretty well so far and I’m happy to go with him quite a long  
> way.

```
What does Matz have to do with this? It's his language but there's

```

nothing to say that you can’t be surprised by it or that this surprise  
is  
unreasonable…

> “What gave you this idea, by the way?”
> 
> The term hash is sometimes used interchangably with the concept of  
> associative array. At least I thought it was. And given some of the  
> other listemails I think that claim could be supported. Does anyone else  
> think that we need to tighten up our nomenclature? (See next  
> listemail…)

```
Okay... It's a little weird that a "term" can be used 

```

interchangeably  
with a “concept” but okay… especially when hashes aren’t insertion  
ordered… but whatever, I’ll take this to mean that you got this idea  
from other posts on this group, list, forum, or wherever the hell all  
these  
posts are coming from…

> Still, you seem to keep claiming that I had this expectation when I  
> didn’t. I suppose I’m saying that I can be surprised by something  
> without having it known to me that I will have a certain expecation  
> because I had a heretofore unrealised expectation. It only became a  
> possible to have a conscious expectation until after I was surprised. I  
> never claimed that it shouldn’t be this way. I asked if it should be  
> other than it is.

```
You had a concious or unconscious expectation and, hence, your

```

surprise…

> I’m considering having a .sig. Which do you like?..  
> — If it’s not beautiful, then it’s not right.  
> — Some people should stick to programming languages. Natural language  
> seems to stretch them.  
> — One man’s bug is another man’s feature.

```
I'm not a big fan of signatures so I can't help you, here...

```
