A formulation of mathematical platonism is that mathematical entities exist independently of us and when we do math we are exploring the realm of the mathematical entities and discovering new things about them. This is a fairly basic or naive formulation of it, but it gets the flavor roughly right. A software platonist would think that programs exist independently of us and when we do computer science or programming (not sure which would be the better formulation) we are exploring the realm of programs and discovering new things about them. A mathematical platonist would say that the natural numbers would exist even if humans never did and a software platonist would say, e.g., that LISP or Apple OS X would exist even if humans never did. Further, the natural numbers were around long before there were humans, and, similarly, LISP and Apple OS X were around long before there were humans. We started exploring the natural numbers a long time ago but only recently started exploring LISP and even more recently Apple OS X.

It seems to me that software platonism is nuts. There is a fairly strong sense, I would think, in which Apple OS X would not have existed were we (broad, inclusive ‘we’) not around to create it. It was created by engineers and is changing over time. But, it is still just a program. However, as such, there is a Turing machine equivalent to it. Now, LISP was also created by a computer scientist, but it is a bit more abstract and so the platonist intuitions are maybe stronger for it. Engineers have changed LISP over time, and I don’t know how a software platonist would explain what links the various versions of LISP (or, for that matter, how programs of any sort run on hardware, but that might not be so different than us counting with the natural numbers). LISP has, I believe, been shown to be able to compute the same functions as Turing machines; the term is Turing-complete, I think.

The question is: are we creating or exploring an antecedently existing realm of programs? There is a related question: are we creating or exploring an antecedently existing realm of Turing machines? I’d hope the two fall together, given the tight connection between programs and Turing machines. However, there seems to be a little bit of room to drive a wedge between the two. I suppose that would allow one to be a Turing machine platonist without being a software platonist. Although, one could try to use the Turing machines, which may be able to draw on mathematical platonist leanings, to argue for platonism about programs.

I don’t have any worked out ideas in this area, but it does seem to me that software platonism is hopeless. Are there any software platonists?

Advertisements