ma il c++ non è un linguaggio portatile, e portatile non significa
che no lo puoi utilizzare su più piattaforme!!!!
significa che se hai un programma già sviluppato su piattaforma MS e
lo vuoi portare su UNIX lo devi riscrivere .
Dipende dal programma. Se usi le librerie standard il programma è portabilissimo senza alcuna riscrittura.

Un programma java invece essendo compilato in byte code (livello intermedio fra linguaggio macchina e linguaggio ad alto livello)
te lo puoi portare dove vuoi una volta fatto ti prendi i tuoi file
compilati e li sposti dove vuoi, sarà la JVM ad occuparsi di fare da interprete con il SO dove lo fai girare ...
Non puoi fare programmi consistenti in Java. Vanno da schifo, a prescindere dalla JVM. Non c'è paragone con le prestazioni che C/C++ offrono. Esempio eclatante: il JBuilder è scritto in Java, è tutto dire!

il C++ e ancora meglio il c è sicuramente più adatto ad una programmazione a basso livello ...
ma quando è che ti capita , oramai, di lavorare così a basso livello?
Ma ti rendi conto delle minchiate che dici? Il C è a basso livello? Dalle tue parole mi sembra di capire che tu di C/C++ non sai un'acca. Quindi, perché non pensi 10 volte prima di parlare?

Ciao.