One should understand the past to get glimpses of the future. Smalltalk vs Java is a good point to do this study. Why Java succeed where Smalltalk failed?
There was marketing. Xerox PARC is widelly known as a market failure, while Sun manage to bring Java, since its early version, to the spotlight. There is no reason that we should expect future decision to adopt this or that solution without a strong marketing support.
There is timing. Virtual machines are expensive in terms of speed and memory consuption. However, when Smalltalk appeared, we were "not there" yet. Smalltalk was a heavy load and it was very difficult to use. Computers were not so as wide-spread as today. Java, on the other side, got in the market "just in time" for a amazing growth of CPU and memory in a already ubiquitous PC.
There was freedom. Smalltalk was about "take it all or leave it all". Java is a language, that can be used in different environments. Developers have their ways. I, for example, around 89/90 was using Actor and not Smalltalk, because it was more windows like.
Syntax also plays a role. Although Smalltalk is pure OO and beautiful, it is easier for a programmer to learn Java (most of them know Pascal/C ou Basic).
In a way, this points to a future where:
1. Successes should mix good technical reasons with strong market.
2. Sucesses should be revolutionary and evolutionary at the same time. New concepts should draw people to it, but the "interface" should change little from what they are used to.
3. Sucesses should allow for freedom of choice in things other that its own "master concept".
4. Sucesses should be affordable.