And anyone who could write this, can grasp Lisp themselves.Write the memorizer? That's basic functional programming, but what does that have to do with Lisp? You could write it in JavaScript:
function memoize(f) {
var memory = {};
return function memoized(arg) {
return arg in memory ? memory[arg] : (memory[arg] = f(arg));
}
}
The big thing Lisp has left is reader and compile-time macros, and other systems [1] might be able to do both better pretty soon. Yes, Lisp has a lot to teach people who think that programming languages are passed down immutable from the superior minds of GvR or Stroustrup, but once you realize the enormous variety of decisions made in designing a language, it becomes clear that almost no number of languages will fill the space of possibilities.
A lot of ways, languages are like religions - they're part of social structure, and part of people's identity, and they tell you how to pray, when to fast, how to allocate and free memory, how to traverse the call stack, etc. But when you think about it hard enough, it's clear that all of these decisions are better made by individuals, not committees or institutions.
1. http://piumarta.com/software/cola/