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

Steven D'Aprano steve at pearwood.info
Sun Mar 9 06:02:07 CET 2014


On Sat, Mar 08, 2014 at 01:54:11PM -0800, Mark H. Harris wrote:

> I am advocating for people--- I am going to say, " if you want just a 
> tad more than double just to check things out, please use the decimal 
> module and import pdeclib. These folks are what Guido called newbies, 
> I'll call them naive users, and these folks are using a calculator 
> (like the TI89) and they will be prone to keying in sqrt(2.345) /

When we get newbies asking why Python does not behave exactly like Java, 
we explain to them that Python is not Java and describe the differences. 
We do not try to make Python into a clone of Java. The same applies to 
newies who complain that Python does not behave exactly like Ruby, or 
PHP, or Perl, or Lisp.

I don't think TI-89 should be the exception. I don't think it is a good 
idea to try to make a general purpose programming language like Python 
into a (mathematical) clone of the TI-89 calculator just to satisfy the 
tiny minority of users who are numerically naive TI-89 users.


> Its just easier than explaining to them (at this point) all the stuff 
> they need to understand to use the functions

When you put it like that, it sounds like you are arguing, not that it 
is better for the users to avoid learning about floating point maths, 
but that it's easier for *you* if you don't need to explain floating 
point maths. That's okay. Point them to the python-list or tutor mailing 
lists, and the regulars there will be more than happy to teach them, to 
the best of our abilities.


> by making sure they feed decimals to the function; either by quoting 
> their numeric inputs, or even using a decimal literal, &c. They know 
> what the functions do, and will want to use them to get more digits, 
> but may not remember the rules to get the "correct" digits.  So I'm 
> advocating for them, to make it easier.
[...]
> Just trying to make it easier for the most people.

Who are these people you are trying to help? The user-base for Python is 
developers, and people trying to learn to be developers. Python is not 
an end-user application. Python is a programming language, and the 
people using it should be treated as if they were programmers.

I think that there are very few non-programmer, numerically-naive, TI-89 
users working with Python, and I think that shaping Python specifically 
for them is a mistake. It is completely appropriate to build an 
interactive calculator using Decimals aimed at the TI-89-using audience, 
and I applaud that. But that's an application written in Python, not 
Python itself.


> If it were just me,  I'd just make sure the functions got decimals and be 
> done with it. 

You would do that even though the majority of numeric users of Python 
would be opposed to such a change?



-- 
Steven


More information about the Python-ideas mailing list