I generally do not encourage questions on these forums that are beyond the scope of my books, but I wanted to ask this community about the following proposition. I am not wedded to this idea, I'm just trying it out. Feel free to disagree as strongly as you like....
C++ Is Dead (but it doesn't know it yet)
1. Java offers a very strong alternative to C++ for cross platform development. The Java library is rich, and Java itself is a more modern, garbage collected language. Java will be king of the non-Microsoft world soon if it is not there already.
2. Microsoft has bet the company on .NET and over the next few years all Windows development (for Windows desktop and for Windows Web applications) will move to .NET. C# is far superior to C++ for .NET development.
Given these two statements, the only audience I see for C++ in 3-5 years is in legacy applications and those few applications where performance is everything.
In short, I think C++ in 2004 will look a lot like Assembler in 1994. I'm not happy about this (a lot of my revenue is in C++ primers) but it does seem inevitable. If a programmer came to me today and asked my advice about C++ vs. Java, I'd steer him to C# first, Java second, C++ third.