Guido on python3 for beginners

Steven D'Aprano steve at
Thu Feb 18 20:17:59 EST 2016

On Fri, 19 Feb 2016 02:51 am, Random832 wrote:

> On Thu, Feb 18, 2016, at 07:25, Rustom Mody wrote:
>> My beef is somewhat different: viz that post 70s (Pascal) and 80s
>> (scheme)
>> programming pedagogy has deteriorated with general purpose languages
>> replacing
>> 'teaching-purpose language' for teaching.
> The flaw in this idea is right there in your post. Both languages you
> named are strongly tied to a single paradigm (procedural for Pascal, and
> functional for Scheme) which don't match the paradigm that real-world
> work is done in. Is there a new "teaching-purpose language"?

Scratch seems very popular for teaching young children. If I were 10, I
would definitely check it out. The emphasis is on writing re-usable code
snippets, collaboration, and graphics and animation.

But apart from that, I think that "teaching" versus "doing" language is a
false dichotomy. Teaching languages should have a shallow learning curve
(easy to get started and learn the language, easy discoverability).
Production languages should have deep functionality and power. Those two
are not *necessarily* opposed[1]. Good languages should have both: a
shallow learning curve leading to deep functionality.

Pascal was easy to learn and powerful, but it made the mistake of not
standardising on a few critical functions that production languages need,
like strings. Nevertheless, for the first 10 or 15 years, Apple used a mix
of Pascal and assembly to write not just the operating system but a whole
lot of applications for the Macintosh. Anyone who says that Pascal is a toy
language is just ignorant.

[1] Except in the trivial sense that the more you have to learn, the longer
it will take.


More information about the Python-list mailing list