A Programmer's Apology
It is a melancholy experience for a professional mathematician to find himself writing about mathematics. The function of a mathematician is to do something, to prove new theorems, to add to mathematics, and not to talk about what he or other mathematicians have done.
Hardy uses "apology" to mean a formal defense in which he justifies and explains his life's work. In doing so he acknowledges that mathematics is a young man's game and his powers are waning. As I approach forty, I have been reflecting on my own life.
I embraced becoming an old codger by publicly reminiscing about the adventures of my youth, presenting a Story Hour at Google this week. I began programming thirty years ago. For over twenty years I've programmed user interfaces for doing math. This blog will detail the evolution of the systems I have built and use them as a framework to discuss design and usability in order to answer the perennial question: "Why does software suck?"
A Programmer's Apology will be an apology in Hardy's sense of the word. It is also an apology in the usual sense: a mea culpa to users of my software spanning twenty years for all the errors and shortcomings. I am still working on it.
As well as a retrospective analysis of the user interface and engineering tradeoffs, A Programmer's Apology will also blog development of the next release of Graphing Calculator. Fortunately, programming is not as intellectually demanding as mathematics, so I can continue to be productive well into my dotage.
Welcome to my world.