>Java is a one-time hit. C is always going to be here. Java is an
>immature language. C is fully developed and open for mastery.

The main disadvantage of Java is that it is slow, especially when run on a virtual machine, though there are currently Java processors which are able to process Java bytecode.

When looking at the future, I think that internet technologies will become more and more important. When looking around, I see electronics being equipped with internet technology. And Java is the language which is used in these electronics (car electronics, TV's, mobile phones, etc.)

Since it is platform independant a great application of Java is remote updating of electronics or even changing functionality of electronics.

At this moment new applications in embedded systems often written in C/C++. But since communication and internet will become very important, many applications in future will be a mix of Java and C/C++.

For example: the MCP, multimedia car platform is for a big part written in Java.

Every language has something that make's it most suitable for certain applications. So I don't think there is a "best" language. I think when creating applications, one should consider more than one language to implement certain functionalities.