
Kevin writes -
I guess I saw things differently up until now. I always thought Python, by design, performed the conversion whenever the conversion was needed. This ensures that when you run an arithmetic operation, you get the result - not a type error or lost data. I would bet this reasoning accounts for why many newbies stumble on the division issue. I now realize that is not how Python works, but why shouldn't it work that way? I don't mean to sound as if I'm complaining, I would just like to know why it works the way it does.
To me this is all about the need for precision in a whole different sense - precision in language. Keep trying to ask - what is a "newbie" and what is the "Programming" in CP4E supposed to mean., "3.1.1 Numbers" of Guido and Fred' tutorial which ships with Python covers the issue of the division operator. My recollection of my true newbie mindset - let me know clearly what the rules are and I will try to play by them. That is my work - my contribution to the learning effort. Certainly Guido and Fed made theirs. The tutorial makes the rules clear. Have I made typos - 3/4 when I meant 3. / 4 - yes. Did I have any significant conceptual problems about what was going on. No. It is actually the hidden bug argument that I find most compelling. But it has nothing to do with newbie status. Absolutely nothing. Should a language be desgined to minimize the possiblity of a hidden unintended result from a missing ".". I guess probably it should, to the extent possible. Obviously this argument is most compelling where we are talking about significant applications. So, by definition, not a newbie issue. Should the language be designed to prevent conceptual errors by folks who haven't made it to Chapter 3 of its introductory tutorial. For reasons that I can't even explain to myself, the argument that it should - if and to the extent that argument has been advanced in these discussions - makes me nuts. A more interesting argument is to what extent we should concern ourselves about those with an interest in learning to program who who read Chapter 3 carefully, and can't follow it - don't have the background to make any sense of it. That's certainly worth talking about. But first we need to have some evidence that such a population exists, which we do not. Or that, if such a population does exist, programming language design is a reasonable arena in which to expect to be able to offer them help[. ART