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?