One critic, echoing the voices of thousands, asks:
“Surely if Lisp makes a programmer N times more efficient, then it would be easy to study scientifically. Have there been any studies comparing productivity?“
I wish I could reply with the immortal words of Babbage. But alas I cannot. Sadly, I can indeed “apprehend the kind of confusion of ideas that could provoke such a question.” It is the confusion which inevitably follows from a bean-counter mentality applied to subjects which are fundamentally alien to it and the culture it has been shaping since the start of the Industrial Revolution. For instance, take the very word “productivity.” It is meaningless alone. One must always ask, productivity at what? If the productivity in question is in the act of being a pyramid builder following orders and bringing to life the ideas of others, then without question the productivity of many a Lisp programmer is something less than heroic. This has nothing to do with Lisp, and everything to do with the kind of people who find it appealing. Now, if we’re talking about productivity at undirected invention, the story of Lisp becomes a very different one. To the now-scorned Lispers we owe garbage collection, all the roots of the modern GUI, dynamic typing, lexical scope, the very idea of a single-user computer workstation, and countless other innovations which so many people believe to have simply dropped from the sky (or worse yet, to have been invented by the sociopathic hucksters who have managed to weld their names to these marvels through Machiavellian business acumen.)
The Lisp Machine (which could just as easily have been, say, a Smalltalk machine) was a computing environment with a coherent, logical design, where the “turtles go all the way down.” An environment which enabled stopping, examining the state of, editing, and resuming a running program, including the kernel. An environment which could actually be fully understood by an experienced developer. One where nearly all source code was not only available but usefully so, at all times, in real time. An environment to which we owe so many of the innovations we take for granted. It is easy for us now to say that such power could not have existed, or is unnecessary. Yet our favorite digital toys (and who knows what other artifacts of civilization) only exist because it was once possible to buy a computer designed specifically for exploring complex ideas. Certainly no such beast exists today – but that is not what saddens me most. Rather, it is the fact that so few are aware that anything has been lost.
It is indeed possible to measure the productivity of Lisp – just as it is possible to measure the productivity of, say, the scientific method. You would not attempt to weigh the latter by setting up a gladiatorial match between stereotypical African shamans and stereotypical American physicists (randomly plucked from Los Alamos, say.) Yet there is no end to similar suggestions for measuring the value of programming systems. I am no mystic, and believe that productivity could in principle be measured (once you define the word.) However, you must measure it on the time scale where it is relevant. The productivity of inventors and the tools of invention cannot be measured in the same manner as the efficiency of two competing pieces of construction equipment – especially not in a society which routinely deprives inventors of the fruits of their labor and awards everything to the slick and hypersocialized.
Yes, my dear bean counters, you can measure productivity. I would no more ask you to stop in your attempts at its measurement than I would ask mosquitoes to stop sucking blood. You can measure productivity – even of Lisp; even of political philosophies. You will simply need to secure a very large bag of beans – one deep enough to hold a bean for every twist and turn of a century of tinkering, politicking, and everything else associated with the messy business of successfully thinking new thoughts.