Reinvention versus reinterpretation

These days, the Java and .NET environments embody the kinds of best programming practices that formerly required superhuman discipline to master. Wizards with long memories can't help but wonder why it's taken so long. In forums and blogs devoted to programming technologies, they're always pointing out -- correctly -- that much of what seems to be modern innovation is, in fact, rediscovery of those ur-languages, Lisp and Smalltalk. But progress in the art and science of software development isn't a stepladder, it's a spiral staircase. [Full story at]

The metaphor of the spiral staircase in this week's column refers specifically to service-oriented architecture and its predecessors. But the notion that we keep coming around to the same ideas ideas is echoing elsewhere too. Lots of folks are commenting that LINQ, for example, has many antecedents, which of course it does, at Microsoft and elsewhere. Paul Vick writes:

Let's be honest: as Newton would say, if we're seeing further, it's only because we're standing on the shoulders of giants. My standard response to this line of thought is: there are really only 15 good ideas in computer science and all of them were discovered thirty years ago or more. [Panopticon Central: Everything old is new again...]

The fact of the matter is that it can take a very long time to understand and fully exploit a good idea. That's partly because we're driven by a false notion that innovation requires new ideas. It can, but it doesn't necessarily. And its partly because the goodness of an idea isn't purely intrinsic. As the world around us changes, an old idea can be appreciated in new ways.

An enterprise architect wrote to say:

We are reinventing lots of stuff over and over again because we fail to master existing technology and improve it.
Another way of looking at that, I suppose, is to say that we're reinterpreting lots of stuff over and over again as we gain deeper understanding of the contexts in which it operates.

Former URL: