[Python-Dev] Revamping Python's Numeric Model

Guido van Rossum guido@python.org
Mon, 06 Nov 2000 17:16:29 -0500


> [Guido]
> > 1/2 yielding 0.5 is innovative?  Give me a break.  Pascal did this.
> > Algol-60 did this.  Fortran does this.  And rational numbers are less
> > innovative?

[Tim]
> Small correction:  Fortran does not -- 1/2 is 0 in Fortran (same as C99's
> new rules, int div always truncates).

I stand corrected -- the idea is only 40 years old, not 44. :-)

> So far as innovation goes, no choice on the table so far is innovative
> (neither mathematically nor in programming languages), so there's no basis
> for choosing there.
> 
> Guido, *why* did ABC use rationals by default?  Was that driven by usability
> studies?

I assume that the use of rationals for exact numbers was driven by
usability studies -- like us, the ABC designers were tired of
explaining the vagaries of floating point to novices.

I remember that I pushed for using rationals for 1E1000 and 1E-1000,
probably out of a mistaken sense of consistency.  I don't think I'm
responsible for 1.0 being exact -- in "The B Programmer's Handbook"
(CWI, 1985) 1.0 is exact and 1E10 is approximate.  In "The ABC
Progammer's Handbook (Prentice Hall, 1990) these are all exact.

--Guido van Rossum (home page: http://www.python.org/~guido/)