Saturday, June 24, 2017

Worried About Truth? Try Programming

Programming as a continual lesson in reality and humility.

The reality principle has been taking a beating recently, with an aged child in the White House throwing tantrums and drama in all directions. Truth itself is under direct assault, as lies big and small emerge shamelessly from the highest levels of our institutions and media. What to do? Reality is still out there, and will surely have its revenge, though that may well drop in another time and place, missing the perpetrators of these outrages while ensnaring the rest of us in its consequences.

For now, you may need a psychological and spiritual cleanse, and what better way than to redouble one's engagement with reality than to drop into a totally artificial world- that of programming? Well, many ways, surely. But nothing teaches discipline in service of the reality principle quite like dealing with a perfectly, relentlessly logical device. Truth is not an aspiration in this world, it is a bread and butter reality, established routinely in a few lines of code. In larger projects, it is a remorseless taskmaster, failing on any misplaced character or weakly developed logic. You get out precisely what you put in, whether that was well thought through or not.

No, it doesn't usually look like this.

One lesson is that every bug has a cause. I may not want to hear about it, but if I want that code to work, I don't have any choice but to address it. I may not be able to find the cause easily, but it is in there, somewhere. Even if the bug is due to some deeper bug, perhaps in the programming language itself or the operating system, and is hard to find and impossible to fix, it is in there, somewhere. Coding is in this way one of many paths to maturity- to dealing honestly with the world. While the profession may have an image of child-men uneasy with social reality, it has its own extreme discipline in the service of realities both formal, in the internal structures they are grappling with, and social, in the needs the code ultimately addresses, or fails to address.

Science is of course another way of dealing with reality in a rigorous way. But, compared to programming, it exists at a significantly larger remove from its subject. It can take years to do an experiment. There may be numerous conscious and unconscious ways to influence results. The superstructures of theory, training, and pre-supposition required to obtain even the smallest step into the unknown are enormous, and create great risks of chasing down fruitless, if fashionable, avenues, such as, say, string theory, or multiverses (not to mention ESP!). The conventional literatures, expecially in drug studies and social science, are notoriously full of false and misleading results. Nor is much of this as accessible to the layperson as programming is, which makes engagement with code an accessible as well as effective tonic to our current national vertigo.


  • What happened in 2016? Mainly, lots of lying.
  • Trump is hardly alone in not caring about the public good.
  • What kind of a democracy is this?