What is different with Python ?
agriff at tin.it
Sat Jun 18 00:02:46 CEST 2005
On Fri, 17 Jun 2005 08:40:47 -0400, Peter Hansen <peter at engcorp.com>
>And the fact that he's teaching C++ instead of just C seems to go
>against your own theories anyway... (though I realize you weren't
>necessarily putting him forth as a support for your position).
He's strongly advocating of a starting from high-level;
comp.lang.c++.moderated is where I first posted on this issue.
While I think that python is not a good first language, C++
is probably the *worst* first language I can think to.
C++ has so many traps, asymmetries and ugly parts (many for
backward compatibility) that I would say that one should try
put aside logic when learning it and just read the facts; in
many aspect C++ is the way it is for historical reasons or
unexplicable incidents: IMO there's simply no way someone can
deduce those using logic no matter how smart s/he is.
C++ IMO must be learned by reading... thinking is pointless
and in a few places even dangerous.
Also, given the C/C++ philosophy of "the programmer always
knows perfectly what is doing", experimenting is basically
impossible; trial and error doesn't work because in C++
there is no error; you have undefined behaviour daemons
instead of runtime error angels. Add to the picture the
quality of compile time error messages from the primitive
template technology and even compile time errors often look
like riddles; if you forget a "const" you don't get "const
expected"... you get two screens full of insults pointing
you in the middle of a system header.
Thinking to some of the bad parts of it it's quite shocking
that C++ is good for anything, but indeed it does work; and
can be better than C. I think C++ can be a great tool
(if you understand how it works; i.e. if it has no magic
at all for you) or your worst nightmare (if you do not
understand how it works).
I think that using C++ as the first language for someone
learning programming is absurd. Francis thinks otherwise.
More information about the Python-list