Multiple dispatch again

David Mertz mertz at gnosis.cx
Sat Jan 4 02:36:07 EST 2003


"Samuele Pedroni" <pedronis at bluewin.ch> wrote previously:
|> Is there a (good) reason for this change, or could it be an artifact
|> of the alpha version?  I don't have 2.3 installed myself.
|See
|http://www.python.org/doc/2.3a1/whatsnew/node14.html

OK, I read the thread at:

    http://mail.python.org/pipermail/python-dev/2002-October/029035.html

I can now say with absolute certainty that -single- dispatch fills me
with Fear, Uncertainty, and Doubt.

Since the BDFL has spoken, I assume 2.3 is going with C3 MRO.  But I
don't like that.  I think it will be a wart for two reasons.  One is
that--in contrast to the so-called "naive ordering"--you cannot explain
C3 to anyone without making their brain explode.  In a way, the
consequences will be less surprising, but almost no one will be able to
comprehend exactly what the rule is.  That doesn't match my idea of
Python (it's not Lisp :-)).

But the idea of raising an error on inconsistencies also strikes me as a
wart for the same reason that I think the incommensurability of complex
numbers with other objects is a wart (and Python's biggest wart).  It is
a nod to purity over practicality.  Sure complex numbers aren't -really-
bigger or smaller than integers, but setting an (arbitrary)
well-ordering makes sorting easy.  Likewise, inconsistency in the class
graph isn't -really- well founded, but that's a fact about graph theory,
not about everyday programming.  In this case, I'd rather have something
that is unintuitive at the margins than I would an exception.

Oh well.  A lot fewer people will ever -notice- the MRO change than did
the complex comparisons.  So in a sense, my concern with "practicality"
is itself overly pure.

Yours, David...

--
mertz@  | The specter of free information is haunting the `Net!  All the
gnosis  | powers of IP- and crypto-tyranny have entered into an unholy
.cx     | alliance...ideas have nothing to lose but their chains.  Unite
        | against "intellectual property" and anti-privacy regimes!
-------------------------------------------------------------------------






More information about the Python-list mailing list