[Python-ideas] Python Numbers as Human Concept Decimal System

Mark H. Harris harrismh777 at gmail.com
Thu Mar 6 09:14:11 CET 2014



On Wednesday, March 5, 2014 11:56:02 PM UTC-6, Guido van Rossum wrote:
>
> Do you actually have a degree in math, or do you just remember your high 
> school algebra? 
>

  hi Guido,  ouch.   Its a story, glad you asked.  My first trip to college 
1974-1977  
(UMKC) was to study EE;  minor in mathematics.  I completed my math course 
work 
(Calc 1-5, Diff Eq, Linear Algebra, Theory of Stats and Prob, &c) ... all 
 (A).  Not 
that it matters, because in 1977 IBM made me an offer in their CE 
department at 
Kansas City... so I joined IBM for the next 25 years and did not complete 
my EE 
degree... but, I did complete my mathematics training.  Of course, prior to 
UMKC
 I attended a high school that offered calculus, math analysis, trig... and 
intro to 
linear algebra. So by the time I joined IBM I got the math twice.  So, 
yeah, I know
what I'm doing. I am an amateur mathematician today, computer scientist, 
and 
computer hobbyist. While at IBM I was a staff software engineer, Tampa, 
Chicago,
Atlanta, and at the lab at Rochester MN (where I left IBM in 2002; yet 
I still dwell there). Education is a life long commitment and I continue to 
study math, comp sci, music
and philosophy. I just completed my course work for the MDiv degree at 
Bethel Seminary.

Back in the day, I added the scientific and transcendental math functions 
to the Rexx
library for the internal VM370 systems, because Rexx (like python) also had 
no decimal 
floating point math package. So, yeah, its one of the things I know how to 
do, and its one
of those things that most people never think about;  but I've noticed that 
they appreciate
having it once the work is done.  My pdeclib package on PyPI is in infancy 
stage, probably 
has bugs (yet nobody has complained yet) and pdeclib will have to mature 
there for some time.
But that has really nothing to do with whether we continue to use IEEE 754 
1985 floats & doubles
nor whether we discuss default decimal floating point arithmetic nor 
whether we discuss a unified
*python number *sytem (sometime in the distant future) that would make | 
allow common average 
ordinary people to leverage mathematics in computer science without having 
to understand the 
underlying mechanics of implementation including but not limited to types. 

We might agree to stick with the discussion, if you're are willing, and 
stay away from *ad hominem* 
attacks, nor credential bashing. A person either knows what they are doing, 
or they don't. And if
they are willing to contribute, why knock it, or them?
 

> The numbers in math usually are quite strictly typed: whole theories only 
> apply to integers or even positive integers, other things to all reals but 
> not to complex numbers.
>

Everyone keeps making the points noted above!  Yes, I know... concur~
    Guido, all data types in most computer high level languages
are all very strictly statically bound also. So what?  You know this better
than anyone, because you have taken so much abuse from trolls about it over 
the
years. We all know that the best way to handle name binding is dynamically. 
And that
was a paradigm shift, was it not?  Go take a look at Rexx. It has NO types. 
None.
Not at the surface, anyway. Everything to the user of the language is a 
string. This is
even true for most of "object" Rexx too. *Numbers *are just strings of 
characters that
are parsed and interpreted by Rexx as valid *Rexx Numbers*. It works. There 
is no
real point in arguing that its a bad idea, because it served the Rexx 
community for
many years... even now, Rexx is not dead. Yes, under the covers (not magic) 
a complex
number is going to be handled differently than a real number.  Yeah, what 
is your point?
They are handled differently in my TI 89 too... so what,  I change the 
context on the 89
and now I'm doing complex number math (not often, I might add). If I set 
the context for
reals, then now I'm doing real math... it really is not that difficult. 
 Think about this for just
a minute. I have used complex math exactly three times in my life.  I used 
it in high school 
to study the concept in math analysis. I used it in my EE classes... 
electrical engineers 
get a lot out of complex numbers.  And I used it when I was interested in 
the Mendlebrot 
set many years ago when it was cool to plot the famous fractal on early cga 
screens.
When was the last time you used complex numbers?  When was the last time a 
bank, or
a hospital, or Montgomery Wards used complex numbers?  If someone needs 
complex
numbers, Python could change the context "dynamically" and move through the 
problem set.  
Why should the user need to "manually" change the context if  (AI)  could 
change it for them 
on-the-fly?  Just try to get a feel for the question, and stop with trying 
to beat me up on 
my credentials.
 

> (And what about quaternions? Or various infinities? :-)
>

What about quaternions?  If you extend the complex number system you change 
the context. That's not hard...
You would not expect the context for "reals" processing to be the same for 
the context of 
processing three dimensional space with pairs of complex numbers, would 
you?  Python
does complex number processing now. But that is a very specialized category 
of use
case that requires special context and (under the covers) typing relevant 
to complex number
pairs. The context can change "dynamically" to suit the problem set, that's 
all I'm saying.

I am not saying in all of my dreaming here that typing is not important 
(down under). Python is
called an object based language, yes?  Not object oriented, right? But we 
all know that down
under the covers (not magic) python uses Classes and instances of 
classes--objects. We 
don't pretend that what makes object based languages work is magic? do we? 
 Unifying the 
number system on a computer does not have to be grounded in paradigms that 
serviced the 
industry (and academy) for the past 40 years; mostly because memory was 
expensive and
processing was slow.  I suggest that if memory had been cheap, back in the 
day, and processing
had been very fast (as it is today) IEEE 754 1985 floats and doubles would 
never have been 
used. We would have used Decimal floating points right from the get-go. 
Initially, that really is
all I'm asking for on the outset--- lets move to default decimal floating 
point arithmetic for real 
numbers processing.  

In the future I am thinking about systems of languages that interact with 
human speech; understanding
*spoken number* just like they will understand *symbol number.* There is 
really no reason (other
than paradigm) that this would not be possible either. 

Otherwise, Guido, we might all of us just continue to use C and code up our 
statically bound types by
hand using nothing but int, long, float, and double.  

Its time to innovate.

Kind regards, BDfL,

marcus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20140306/4c1b9950/attachment-0001.html>


More information about the Python-ideas mailing list