Why is there no or or and ?

bearophile bearophileHUGS at lycos.com
Sun Feb 19 12:51:34 PST 2012


Kevin Cox:

> I think that python stretches
> close to the line but I doubt it was designed for beginners.

Python partially comes from ABC, a language that was designed to teach programming. So originally Python was meant (unlike ABC) to be practically useful, but also to avoid being unnecessarily hard to learn and use, retaining ABC ideas and simplicity where possible.

In the last years they have added more features to Python (Unicode on default, lazyiness on default in many places, decorators, and so on and on), to make it more efficient and more fit to write larger programs. So now Python is large enough, and despite being simpler than several other languages, it's not so simple to be a first language.

The problem with languages to teach programming to people that don't know how to program, is that if you design them to be simple and good for teaching, no one uses it for practical purposes, so it ends being useless outside schools, and very few people write patches or libraries for it. So it often dies. If you use a language used for real use, you have many libraries and a good compiler/interpreter, but the language is large, often full of legacy, warts, or backwards compatible things, and the language itself is often not easy to learn and understand.

Apparently there is no way out of this dilemma. I have seen that today Python is good enough to teach programming, but you can't teach static typing well with it. D is too much complex for young newbies. Racket Scheme has a very good editor, it has good documentation, and so on, but in my opinion Python is better as first language, despite Racket contains a typed scheme too.

Bye,
bearophile


More information about the Digitalmars-d mailing list