On Fri, 17 Jun 2005 08:40:47 -0400, Peter Hansen <[EMAIL PROTECTED]> wrote:
>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. Andrea -- http://mail.python.org/mailman/listinfo/python-list