Language change and code breaks

Dirck Blaskey dirck at
Wed Jul 11 20:47:17 CEST 2001

"Guido van Rossum" <guido at> wrote in message
news:cplmlvh6dx.fsf at
> Very good sumary, Terry.  I'm beginning to get second thoughts about
> integer division -- maybe it's better to leave well enough alone, and
> try to fix areas of the language that could really stand some fixing
> (such as subclassing built-in types).
> --Guido van Rossum (home page:

Glad you're having second thoughts, I'm on my third or fourth.
At one point you even had me convinced, but then...
to someone maintaining a large code base, dealing with
a change this subtle could be somewhere between 'intimidating'
and 'terrifying', especially since there are no type declarations.

I don't think I agree with the spirit of PEP 228, either.
Hardware is a fact of life.

Anyway, Just another point to consider:

In all the examples cited that show why this is a problem,
it's not integer division that causes the confusion,
it's division of integer *literals*.  Anyone using literal '1/2'
in a program has probably made a mistake.  I don't know how smart the
compiler is in pre-processing constant expressions, but if it is,
it could be smart enough to issue warnings for constant integer division
yielding quotient == 0  or remainder != 0.

Just a thought.


More information about the Python-list mailing list