Minh’s Notes

Human-readable chicken scratch

Minh Nguyễn
April 17th, 2003
Programming
#23

Edit

Looking forward

Typically, Internet writers predicting the future of technology will take the naïve approach of suggesting outlandish possibilities and science-fictional conflicts that arise as a result. I’m impressed, though, with Paul Graham’s very enlightening and inspiring essay on the future of programming, The Hundred-Year Language. Although it is very long, the essay should be of interest to anyone who’s ever learned a programming language.

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 diss 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.

If we had the hundred-year language now, it would at least make a great pseudocode. What about using it to write software? Since the hundred-year language will need to generate fast code for some applications, presumably it could generate code efficient enough to run acceptably well on our hardware. We might have to give more optimization advice than users in a hundred years, but it still might be a net win.