Throughout the whole project, I have received countless communications from programmers and computer scientists - over coffee, in the midst of debugging sessions, in conferences, at bars and via email - hoping that it might be possible to say what they feel they know, the absence of which, in some cases, has led to almost existential frustration.
Sunday, May 30, 2010
About 14 years ago, at the pick of the object-oriented programming craze I came across a publication called On the Origin of Objects, randomly placed amidst the stream of software/OO engineering books at a very reliable computer science bookstore. Surely, I thought, this would get to the bottom of things, somebody has dissected the notion of objects and outlined all the fundamentals I would need to be a successful programmer without the need to skim through endless pages describing ridiculous design processes, trivial principles, inapplicable rules of thumb and what not. It turned out the book had nothing to do with object-oriented programming.
On the Origin of Objects (amazon link) is about metaphysics with computation as the starting point. The author is one of the deepest and most original thinkers I've come across - Brian Cantwell Smith (wikipedia link). Needless to say, I couldn't read it at the time, I wasn't ready for it. That came about 7 years later and it was a memorable, mentally reinvigorating experience. Smith writes beautifully and dances around his insights with such grace and depth. He writes about the kind of computation we do day to day, the real stuff, and he puts common conceptual problems we programmers face into the center stage of philosophy in a way that gives our work those extra dimensions that scientists seem to have always enjoyed - a fundamental, very real connection to the physical world, including, at an even deeper level, a connection with us intentional beings, a set of problems that arise naturally from the practice of our profession, yet quickly reach the most difficult metaphysics in a way that no other practice does.
There are a few (not many) articles you could find on the internet from Prof. Smith, all of them worth reading. However, the purpose of this blurb is to bring to the attention to whoever comes across it his latest work. For the past years, I've been eagerly monitoring and waiting the publication of Age of Significance, which is supposed to be in 7 volumes. The book website, http://ageofsignificance.org/, hadn't changed until just two months ago where it was announced that individual chapters will be published monthly. So far, only the introduction has been posted at http://ageofsignificance.org/aos/en/toc.html and I believe that an attentive read would make my seeming infatuation with this work understandable. Originally, I intended to write a summary of that introduction, highlighting the main points, most of which I'm already familiar with from previous writings (Smith's and others), but I wouldn't want to butcher it. It is philosophy at its best. And it is about the foundation of computing, that which we (should, to say the least) care about. I will just quote the conclusion for the hardcore philosophy skeptics:
That is pretty much how I've felt more often than not as a programmer. And that is why, to me Smith's work is pure poetry, as philosophy used to be seen at the time of Plato anyway.