Re: What can C++ achieve and how to learn C++?
 
"TB" writes:
I am thinking about learning a programming language and I want to
decide whether it is worthwhile spending my time learning the C++
programming language.
<snip>
I think the questions you have are extremely difficult to answer. The kind 
of person who might have a useful  answer is someone who teaches both Java 
and C++ in an adult education class.  He is probably a real programmer, 
rather than an academic, and he knows both languages quite well.
I know some C++ but just have a very general idea about Java.  I know you 
will not be writing real and usefull programs in C++ alone.  You will need 
to learn the API of at least one OS and learn it quite well.  For example, 
there is no such thing as recognition of a file structure in C++, there are 
simply naked files.
The STL is now considered, and in fact is, an intrinsic part of C++.  It 
consists, basically, of a bunch of high level data structures, such as 
stacks, lists and trees.  C++ allows one to defer the intent as to data 
types by using templates, this can be handy and it can also be a real PITA 
when some simpleton thinks his little program is written for the ages and 
obscures everything by hiding his data types in templates.
C++ has multiple inheritance which I don't think Java has. This has its uses 
but it requires a mind numbing amount of planning to use in a fruitful 
manner.  The I/O of C++ uses multiple inheritance and I would guess there 
were hundreds or even thousands of man-hours used in simply writing the 
specifications - so the routines written would all fit together.
I have picked up several languages over the years and C++ is *by far* the 
most hideously complex language of them all.  There are gotchas around every 
corner.
From what little I know of Java, if I already knew Java, I think it would 
require a lot of selling to convert me to C++ guy.