Python is just as good as C++ for real apps

Kragen Sitaker kragen at pobox.com
Wed Jan 23 09:20:15 CET 2002


Donovan Rebbechi <elflord at panix.com> writes:
> Hahahahaha ... who cares ? "Python knowledge", "C++ knowledge", or any other
> kind of language specific knowledge is almost worthless. 

Before a person studies programming, learning Python is learning
Python, learning C is learning C, and learning MFC is learning MFC.
After a first glimpse into the truth of programming, learning Python
is not learning Python, learning C is not learning C, and learning MFC
is not learning MFC.  After they know how to program, learning C is
once again learning C and learning Python once again learning Python.

To someone who does not know how to program, or who is only beginning,
different languages seem to have little in common.  Learning to solve
their problems is a matter of learning the idiosyncrasies of their
particular language and libraries --- what order the parameters go in,
when to use -> and when to use ., how to avoid the static
initialization order fiasco, and how to indent their code so the
Python interpreter can read it.

> As is a programmer whose capacity for abstraction is so limited that
> they allow themselves to degenerate into a (foo) programmer, instead
> of a programmer.

Once real learning begins, the learner sees that the particular
features of a language's syntax and its libraries are insignificant;
all programming languages are Turing-complete, library APIs can be
looked up in a manual, and knowing how to break down problems into
pieces, how to write correct code, how to debug, and how to draw upon
traditional algorithms and data structures when necessary are much
more important than knowledge of the particular language.

> If you've mastered the paradigms, picking up a new language is
> easy. I don't learn languages for immediate commercial benefit. I'm
> studying ML right now, and I haven't seen any ML jobs in the paper
> -- my motive is to learn another way of looking at programming
> problems.

When the learner has mastered the paradigms, they know that it is
still better to solve a problem, if it's not too much extra work, with
a language and libraries they know well than to learn a new language
and libraries.

(Of course there are always new paradigms, new ideas to master.)

If mastering a new language is easy for you, you must be a lot smarter
than I am.  I started writing Python programs regularly a year and a
half ago; it took six to nine months before I stopped doing things in
Perl when I was in a hurry.  In Python, I had to look everything up in
the manual; in Perl, I knew how to do things.

If I have a problem in a Python program, I'd sooner ask a wizard who
doesn't know Python to help me find it than a novice who does.  But if
I can choose between a wizard who knows Python and a wizard who
doesn't, I'll pick the wizard who does.  The wizard who doesn't know
Python will need many months to become expert in Python.




More information about the Python-list mailing list