Wednesday, May 15, 2013

Critical Programming

The philosophy of computing and philosophy of programming are both uninstantiated as explicit critical disciplines. A default concretizes around humanities philosophies of technology in academic circles and engineering philosophies of technology in technical communities. Programming philosophers are hard to find when they work in industry rather than the humanities; their private musings might be found in source code comments, though most are uttered in strange languages like C++, sometimes doubly occluded on account of nondisclosure and superseded revisions. We cannot shun study of our machine others and maintain understanding of how they, and we ourselves, work. The consequence of this avoidance is that our intellectual trajectory has decelerated to bifurcating strata of humans getting dumber and machines getting smarter. Critical programming is a digital humanities practice that privileges working code, both acts of software engineering to produce research results, and running iterative versions of those programming products to enact scholarship, research, and performance. It extends Software Studies, Critical Code Studies, and foregrounds awareness of computing systems and architectures promoted by Platform Studies, emphasizing the materiality of code over the abstract mathematical representations of algorithms. Surpassing consumer comportment characteristic of print bound thinkers, programming philosophers write the code for their own language machines. With a nod to Nietzsche, this is how one may philosophize with programming.