Comparison between C++, C# and Java?
C++ wins, because the generated code is super fast, and there are tons of nice multimedia libraries for it.
C# is on the way to change that (WinFX, DirectX), but right now I think C++ is still better for games.
And Java, ... well it's too slow.
Here's C++ the looser, because it lacks productivity compared to Java and C#. C# is better than Java for business applications because the resulting applications look better, run faster and are more usable.
Nothing of the three. Use a combination of LISP and Python.
And other questions?
4) What about in the future (whether any of them will die, be replaced, live forever or improve as it's relevant technology improves (probably only applicable to C# and Java))?
C# gets stronger and better right now, Java will die eventually.
5) The interests of businesses? (ie, will business support C# or Java more?)
C#, because it's better and it's by Microsoft. Seriously: Companies that switch from C++ to C# usually gain 50% productivity or so. Don't know about Java though.
6) Whether any deficiencies of one language could be made up by the speed of development or ease of the other? (eg, VB vs those strange languages recently posted)
I find C# easier than VB. VB just teaches you bad programming habits.
7) Availability and completeness of APIs?
C++ has the most complete API, I would say, because you can get just any library for it. On the other hand you can't compare the C++ STL with a .NET framework class library.
C# and Java both have a very complete and easy to use class library, but when it comes to additional stuff, like, using 3rd party libraries, C++ is the better choice.