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