On May 14, 2013, at 12:53, Jonathan Eunice firstname.lastname@example.org wrote:
Using a compatible, separate implementation for OrderedDict is a fine way to gracefully extend the language, but it leaves ordering only half-accomodated. Consider:
OrderedDict(a=2, b=3, c=7)
If your proposal is to replace dict with OrderedDict, I think you need at least one use case besides OrderedDict's constructor.
But from an app developer’s point of view, ordering is a basic, essential property.
There are plenty of things that are basic, essential properties of a particular type, but there is very little that's a basic, essential property of _all_ types.
Surely you wouldn't suggest that a complex number should remember whether you specified the real or imaginary component first.
So your argument is that order of insertion is a basic property of _mappings_ in particular.
And I think blist.sorteddict, trie.Trie, etc. are good arguments against even that assertion. It's not just about performance; it's about correctness. Insertion order is not a fundamental property of mappings.
If you're just suggesting that collections.abc should grow an OrderedMapping, and/or that kwargs should be an OrderedDict, either or both might be reasonable.
But if you're suggesting that Mapping and dict should both become ordered, I disagree with both.