Quote:
Originally Posted by WingedPanther
R-G, I agree absolutely that C++ offers more programming paradigms, though it is possible (painful, but possible) to do object-oriented style programming in C. Most of it requires discipline to not violate those methodologies. Of course, I simply prefer C++. Operator overloading is a mathematician's friend 
|
I tend to do all my maths stuff in Lisp, in fact emacs slime mode is my calculator. First class functions are a god send. Also it's nice to have a number type that automatically converts between the various representations as needed (also uses rationals rather than floats where possible for exact representation. Infinite integers too and complex numbers). Of course the down side is that everything is prefix but a good mathematician should be able to handle that

.
As for C v C++. C is very, very good at what it is good at but can be awful outside of it (you can write applications in C but you need to be very disciplined to avoid a mess. Structuring tends to be more natural in OOP). Despite this I think it a good first language because there's not actually much going on in C (which is sometimes why it's hard to use). Building massive GUI's is something to worry about later, new programmers struggle with the concept of a variable, function or for loop.
C++ is like several high level languages bolted onto a low level language. I recommend you learn it (because you need to understand OOP) but I'd start with learning the basic API differences (iostream instead of stdio.h, etc) and handling objects. Leave the template metaprogramming stuff for later. It's very rare you need it (even in Lisp, the language that invented metaprogramming, you rarely use it) though it can save you a lot of code.