And now for the Albatross to swoop in and be nitpicky.
| C++ can be used effectively for many many tasks (if not all), other than scripting programs. |
Programs can be written to be extensible using shared objects written in C/C++ (see HexChat). You'd just need to call the platform-specific APIs for doing so, as currently this functionality isn't implemented in the standard library.
| It can be faster than C (at least without some serious and seriously messy preprocessor heavy lifting or seriously convoluted code) |
You elaborate on this later, but as for seriously convoluted code or preprocessor heavy lifting... have you seen some of the stuff people do with template metaprogramming?
| There is no reason to pick java over C++ if you have a choice |
In cases where platform independence is very important, a solution wherein a JIT compiler and/or virtual machine are used is perhaps the best. Currently, as far as I know, there is no single widely-accepted virtual machine for C++ (though LLVM may change this), where Java is by definition built off of one.
| there is no reason to implement a c++ compiler for a system rather than a java environment |
And how do you suppose the Java environment is implemented? Furthermore, it's actually really hard to implement C++ for a Java environment. There would need to be a lot of native code added to deliberately circumvent some of the Java environment's safety features (including memory access), and almost invariably it would have to violate some part of the C++ standard where a certain implementation cannot be followed.
| Java has a faulty model and no programming language should be built around only one programming concept. |
Tell that to the lispers or the folks who write assembly. :D
| Hell, C++ has a better garbage collection system than Java, but whatever. |
Technically, C++ doesn't mandate garbage collection. C++11's spec was written such that a garbage collection system could be introduced, but in practice none of the major compilers offer one (AFAIK, I know for sure clang doesn't). C++ follows the principle of RAII, which isn't exactly garbage collection, and is in some cases incompatible with garbage collection.
| And sorry to burst your bubble, but you wont learn C and definetly not C++ from school. You better start reading and getting your hands dirty. |
Some schools do offer C/C++ courses, though indeed these are generally terrible and learning yourself (as long as you have the discipline) is the better option.
-Albatross