По-моему, обсуждение уже далеко отошло от темы
Изначально утверждалось, что Java якобы заменяет C/C++ в
учебных заведениях. IMHO Java куда проще их, поэтому вполне разумным представляется обучать программированию на Java, а уж потом переходить на С/С++, если потребуется.
Java действительно не заменит С/С++, в чём я уверен, по причинам производительности в частности и по многим другим причинам тоже. Например, потому, что Java - эта некая задокументированная среда, включающая не только язык, но и библиотеки. Все разработки ведутся
только в рамках этой среды. Если появляется какая-либо совершенно новая технология, то органично "подрубить" её к Java гораздо сложнее, чем к языку С/С++. Пример - колёсико мыши, которое, с одной стороны, уже невесть сколько времени существует, а с другой - нельзя было поюзать под Java буквально до 2002 года.
А насчёт разницы между компилятором и интерпретатором - на самом деле она довольно условна. Теоретически никто не мешает создать процессор, машинным языком которого будет Бейсик - вот и привет

Кстати, процессоры, для которых машинным языком является разновидность Java, существуют (picoJava II).
А ситуация с .net ещё более интересна. Разработчики утверждают, что скорость работы .net кода будет
выше, чем обычный компилированный EXE C/C++. Причина в том, что система .net осуществляет компиляцию кода на лету (just in time), а поэтому может провести некоторую оптимизацию, рассчитанную конкретно на вашу систему. А средняя среда разработки до сих пор обычно создаёт, по умолчанию совместимый с 386 процессором - т.е. никакого использования инструкций Pentim IV вы не найдёте.