Why Does Hash Apparently Reorder Its Internal Representation And Other Associated Ponderings

(thoran@thoran.com) #1

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

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.

(Just Another Victim of the Ambient Morality) #2

<thoran@thoran.com> wrote in message
news:14a5f04569cfc2084dcddd6385c46e0b@shiny...

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

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

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!

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