It's amazing how quickly something can become the de facto standard in our industry. Take Java, for instance. It's not even a decade old and already companies, universities, and independent programmers have eschewed all other choices in favor of the dark brewed wonder. But, from a technical standpoint, does Java really deserve this rapid exaltation?
If you're comparing Java to C++, it does have some immediately nice aspects. However, one doesn't always have to compare everything to C++. Further, I still believe there are instances where C++ is the correct choice and not the hindrance it is often portrayed to be. However, it's obvious to me that many companies are not building their internal enterprise infrastructure with C++ and instead are choosing Java because it seems close enough to C++.
What if, instead of comparing Java with C++, we compare it with Smalltalk? After all, Java was inspired more by Smalltalk than C++. Smalltalk is positioned to service the same set of problems as Java, namely enterprise business software. In addition, there are several Smalltalks on the market that easily put Java to shame for the development of shrink-wrap software.
The sad part is, many people haven't considered it because they simply don't know what they don't know...