It seems to me sensible to believe that someone can become a quite
decent, say C++ programmer, by tackling it as a first language, and
sticking with it.
I don't think that is true of Python. I think there is a layer of
Python that one cannot reasonably penetrate without stepping outside
of Python.
One can get started with Python, with Python.
But in the end I don't think Python serves as a fully adequate
introduction to itself.
That's actually a very good point...
Someone without experience writing complex programs in an OO language
(Java is probably best, as much as it pains me to say it) won't be able
to maintain a large project in Python, and someone that's never touched
C won't know enough about the underlying principals to take full
advantage of some aspects of Python. Not the least of which is actually
writing modules for Python in C...
I do think that C++ should be avoided though. Programmers that first
learned Java or C seem to be able to go on to other languages pretty
easily. Even better, Pascal, as it's impossible to write a useful
program without first learning another language.
But all C++ programmers want to know is how they can get the features
they're used to in whatever new language they're presented with.