Naja, wie schon mehrfach gesagt, nicht die Programmgroesse bestimmt die Programmiersprache, sondern der Zweck des Programms.
Es gibt halt Sachen die besser mit Java zu implementieren sind und Sachen die man besser mit C macht.
Um nochmal meine Vorredner und mich selbst aufzugreifen: Java ist eben platformunabhaengiger, besonders wenn es darum geht vom PC wegzugehen und fuer Handies, Kuehlschranke und Dosenoeffner programmiert.
Wenn es um zeitkritische, also Realtime, Anwendungen geht ist C/C++ vorzuziehen, da der Code schneller ausgefuehrt wird.
C/C++ sind natuerlich auch relativ platformunabhaengig, jedoch gibt es durch die vielen Hersteller von IDEs, ich denke da jetzt hauptsaechlich an Borland C++ Builder und den Microsoft-Kram, so viele Libraries die an Windows gebunden sind, dass das Portieren auf ein anderes System, wie z.B. Linux nicht einfach wird.
Wenn man jedoch lediglich mit Standard-Libraries arbeitet wird man das Programm wohl ohne Probleme auf beiden Systemen kompilieren koennen. Das Problem dabei ist dann eben der Befehlsumfang.
Wenn ich mehr mit C machen wuerde als den ATI-Treiber fuer Linux zu reparieren und schonmal im Source eines Programms mal eine Kleinigkeit anzupassen oder zu korrigieren wuerde ich wohl dazu tendieren Linux-Libraries zu nutzen die es auch fuer Windows gibt.