On approximately 3/3/2009 11:22 PM, came the following characters from the keyboard of Raymond Hettinger:

Perhaps the terminology should be

  ordereddict -- what we have here

  sorteddict -- hypothetical future type that keeps
                itself sorted in key order

+1

-1

Introducing the hypothetical sorteddict would serve to reduce the likelihood of ordereddict being interpreted as sorteddict among the small percentage of people that actually read the two lines that might mention it in the documentation, but wouldn't significantly aid the intuition of people who first encounter it in someone else's code.

And without an implementation, it would otherwise be documentation noise, not signal.


FIFOdict ?  Yeah, that blows the capitalization scheme, way, way out.

Issues:
* The popitem() method is LIFO.


But traversal starts at the other end, if I understand correctly. popitem seems gratuitous (but handy and cheap)


* In a non-popping context, there is no OUT.  It just stores.
* FIFO is more suggestive of queue behavior which does not apply here.


It is suggestive of queue behavior, and the items are a queue if looked at from insertion, and traversal perspectives, if I understand correctly. But without OUT, FIFO is a bit too aggressively suggestively of queues... but not more so than ordereddict is a bit too suggestive of sorted behavior... And at least FIFO doesn't have the sorting connotation.


* Stores to existing keys don't go at the end; they leave the order unchanged.

FWIW, PEP 372 has links to seven other independent implementations and they all have names that are some variant spelling OrderedDict except for one which goes by the mysterious name of StableDict.


Well, just because six other independent implementations use a name with connotations that they don't live up to is no reason to perpetuate such foolishness, nor introduce it into the Python stdlib.

StableDict, eh? That's not so mysterious, perhaps, if you think of stable sorts^H^H^H^H^H (whoops, there's the wrong connotation rearing its ugly head again, sorry).


Am still +1 on painting the class green with pink polka dots, but I'm starting to appreciate why others are insisting on pink with green polka dots ;-)


Sure. I didn't expect FIFOdict to be an extremely useful suggestion, but I wanted to make the point that if the name has an erroneous connotation, use a name that doesn't. And to get the discussion above flowing, to find out more about your thinking in the matter.

InputOrderedDict might be more descriptive, yet not as long as that other atrocity I alluded to that you rightfully refused to quote :)

From tree-walking, perhaps people would intuit the right connotations from InOrderDict which is no longer than ordereddict, but usually the tree is kept sorted too, so I'm afraid it might not be sufficient.

Maybe SequenceDict ? SeqPreservingDict ? SeqDict ? All of these talk about sequences, which are generally not implied to be sorted. I like these well enough, and it is late enough, that I'm not going to think of more right now.

C'mon folks, brainstorm, don't complain about ordereddict if you can't come up with some alternatives for discussion!!! (and some reasons why the suggestions might be good or bad) Even your bad ideas might trigger a good name in someone else's head...


--
Glenn -- http://nevcal.com/
===========================
A protocol is complete when there is nothing left to remove.
-- Stuart Cheshire, Apple Computer, regarding Zero Configuration Networking
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to