In C++ gibt es mehr Möglichkeiten auf Betriebssystem spezifische Dinge einzugehen:
z.B. DirectX, GUI Forms
Der Sourcecode von C++ kann auch platformunabhängig sein(weitesgehend), wenn man sich an gewisse Regeln hält und z.B. noch wxWidgets oder OpenGL benutzt. Und wenn man platformunabhänig programmieren will, sollte man sich am gcc Compiler halten.
Die Binary kann nicht platformunabhängig sein.
Bei Java gibt es auch ein paar OS spezifische Dinge, die man beachten muss bei der Programmierung, aber die kann man an einer Hand abzählen.
ansi C/C++ (nicht C#) ist immer noch eine der Grundlagen der Programmiersprachen, in dem heutzutage immer noch das meiste programmiert wird.
ansi C ist hauptsächlich in Linux/Unix sehr verbreitet. C++ hauptsächlich unter Windows, aber auch immer mehr unter Linux/Unix.(KDE ist komplett C++, Gnome in C).
C# (aus der .Net Platform) nimmt leider auch eine immer größere Stelle bei den Firmen ein. Vorallem bei der GUI Programmierung.