On May 14, 2013, at 12:53, Jonathan Eunice <jonathan.eunice@gmail.com> 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.