Steven D'Aprano writes:
He describes his design of the language here:
We're talking about different things. Specifically:
"Design with learning in mind" literally means "don't forget about beginners in Python and in programming", not "sacrifice everything else on the altar of education".
That's not what it *literally* means.
You're confusing "literally" with "idiomatically". "Design with learning in mind" doesn't say *anything* about what else is in mind, or relative priority. *Idiomatically*, yes, it's used as you and Abdur-Rahmaan have. But *literally* it means that when you're thinking about design, "learning" is in there with all that other stuff. Guido literally quotes the Zen of Python as his design principles. Of the 19 verses, only the two concerned with timing ("now" vs. "right now") are not clearly related to the language being learnable. The fact that Tim didn't explicitly use words like "learning" or "education" in the Zen doesn't mean that Guido hasn't had "learning in mind" when he actually conducted design. The only way we can be sure is to ask him, but I'm willing to stand on the inference from the language we actually have.
In any case, it is a matter of historical fact (to the degree that we believe Guido's account, and we have no reason to think that he is lying) that he didn't design Python with beginners in mind.
Specious. Beginners are not the only people who have need to learn.
One of those concepts he intentionally rejected was that the user had no prior experience and was learning how to program.
You have a *very* restrictive idea of what "learning" means in the context of programming. Not everything that makes a concept learnable is useful or necessary for beginners, not everything that is useful or necessary for beginners is useless for experts. It is of course true that teaching beginning concepts to beginners and advanced concepts to experts are very different activities and benefit from different approaches. That doesn't at all mean that the same set of principles aren't conducive to learning at all levels. It doesn't necessarily mean that they are. But I believe that such a set can be, and that Python's set of design principles as embodied in the Zen as well as some other folk sayings is an example of a set of principles that leads to a language that is conducive to learning. In several domains: about the language itself, about the generic activity of programming, and about the real systems that our programs simulate or implement. Steve