I think that, like species, languages will form evolutionary trees, with
dead-ends branching off all over. We can see this happening already. Cobol,
for all its sometime popularity, does not seem to have any intellectual
descendants. It is an evolutionary dead-end-- a Neanderthal language.
I predict a similar fate for Java. People sometimes send me mail saying,
“How can you say that Java won't turn out to be a successful language? It's
already a successful language.” And I admit that it is, if you measure
success by shelf space taken up by books on it (particularly individual
books on it), or by the number of undergrads who believe they have to learn
it to get a job. When I say Java won't turn out to be a successful language,
I mean something more specific: that Java will turn out to be an
evolutionary dead-end, like Cobol.
This is just a guess. I may be wrong. My point here is not to dis Java, but
to raise the issue of evolutionary trees and get people asking, where on the
tree is language X? The reason to ask this question isn't just so that our
ghosts can say, in a hundred years, I told you so. It's because staying
close to the main branches is a useful heuristic for finding languages that
will be good to program in now.
Paul Graham - http://www.paulgraham.com/hundred.html