Java has gone the way of C and C++. It's mainstream, ubiquitous, and silent. Okay, it's not completely silent, but well below most people's radar. Java announcements and standards are being approved all the time. Yet for the most part, these are not earth-shattering events. There's also less controversy regarding Java, because the level of technology is so good that issues like performance versus alternatives have become non-issues.
This reminds me of the first time I started using C on a Z80. Back then, assembler was for the pros and Basic was for everyone else. This thing called C was of interest on microprocessors, but the compilers generated terrible code. It was four to 10 times larger than what a typical assembler coder could crank out, and 64 kbytes was a lot of memory at that time. So guess what ships now with Zilog's eZ80Acclaim! kit? That's right, an ANSI C compiler—and a pretty good one. In fact, few developers wouldn't think twice about using C for an embedded project. Most would think it nuts if they were forced to use assembler.
This same scenario has played out with Java but at a rapidly accelerated pace, putting Java on par with C and C++. The first batch of Java interpreters was notoriously slow. That has changed, though: Just-in-time and ahead-of-time compilation delivers significant performance, allowing products like NewMonics' Java to be used in embedded network infrastructure environments. That's definitely a critical part of a network. Most 32- and 64-bit embedded processors have a Java hardware acceleration option. Even standards-based real-time Java support has made it to market with TimeSys' recent announcement of TimeSys Java (see "Will The Real-Time Java Please Stand Up?" upper right).
Java is being taught in school often before or in lieu of C++. Finding Java programmers and tools is no longer a hardship. The open-source Eclipse project (www.eclipse.org) was built on Java and intended initially for Java. This integrated development environment (IDE) now works with C and C++, making it ideal for mixed-language environments. Support is even under development for Cobol and other languages, but Java was there first.
It has now reached the stage where questions about Java don't ask whether or not it's good enough, but rather if the alternatives are better. In many cases, Java is quietly coming out on top.