Schism of function and form
When I said I have a theory of computing, I meant I actually have two.
If you keep up with my writings on here, you’ll know I devote a considerable share of it to my bread-and-butter: theoretical computer science. I have to admit this is the one that comes before all of my other interests and competencies, mostly because I’ve come so much farther and have made so much more of an impact on this world with it compared to everything else.
Most people aren’t theoreticians though, and even some who claim they are likely don’t skirt the bullshit detectors of people sceptical of academia. My lack of accreditation aside, the other thing I can offer you to assuage such concerns is a bit of honesty: I’m learning this stuff as I go along. That’s the thing about finding new theories: they’re as new to you as anyone else, and before you discover them you are as ignorant as anyone else is about them. What you do have is probably an incomplete picture.
Until this point I have offered you such a picture, in the form of mechanicalism. This is not to say that mechanicalism is a lie, or that the term is going away; quite the contrary. What it is to say is that I was misunderstanding what I have been looking at here, and the locus of that misunderstanding lies in the details of von Neumann and Harvard architectures. I hope you’ll overlook the irony given the reality that this, too, is probably not a complete picture either, because it’s a lot closer to one. In science, that is enough.
Like any good logician, I make my models from first principles, and take very little for granted, even existing theory like the lambda calculus. The result of excavating the existing corpus of theory of computing in this way has shown me a greater space where my discoveries flank the existing body! Let me explain.
The two major hotspots I have had in my theoretical work point towards the von Neumann architecture and data-oriented design. Von Neumann architecture and its properties were being explored by John Backus at least since his 1977 Turing award lecture, and certainly imply a lot of important things about the nature of data. Data-oriented design itself is just a practical term coined by Richard Fabian in pursuit of video game engineering, which I have generalised into mechanicalism.
John Backus’ attempt to liberate programs from the von Neumann style was stymied by it being widely misunderstood as a kind of functional programming, when in reality it was an attempt to do what functional programming had failed to do through Lisp: escape the semantics of data entirely. My salivation towards this is downstream of my pathological focus on data, because it is clear to me now that this is the proper form of functionalism. Lispers at MIT once jokingly called themselves the Knights of the Lambda Calculus, which was later referenced by Lain as the Knights of the Eastern Calculus, and so I call it as such. If Lisp is Eastern Calculus, then function-level programming – indeed the very basis of a true Harvard computer – is Far Eastern Calculus. All of its rigour is devoted to the programs, data only permitted in retrospect outside the frame of work. In other words, you will have to devolve a piece of Far Eastern Calculus in order to send data through it. But since programmers are chiefly concerned with programs, with data being an object of mere engineering, is this not ideal? I think this is obvious.
On the other hand, we have the inferior of the two: the direct apprehension of data itself. The central conjecture of mechanicalism comes down to making optimal programs for real world data, a task which will never be perfected as it is not possible to know every possible input for a nontrivial program (ergo, no infinite tape on the Turing machine). This is the work that most programmers have misapprehensions about. The current state looks like a simulacrum of hackers on steroids modifying your compilers and libraries to make the ghosts of dead great computer scientists cry. They make all of the funky magic happen, but there’s no form to what they do at all – it’s little more than messing with the big piles of code everyone implicitly uses to get them to do things they weren’t designed to do. Mechanicalism aims to drag this out of the sorry circus it’s confined to and professionalise it. The people want the data! They want it now! They want it fast! They want it good! They want it comprehensively! Hacking your compiler to output binaries that run on your computer again regardless of political impositions from Microsoft and Apple is comparatively pedestrian. People just can’t get enough of their own data. Data companies know this and exploit it, but even their tools are small-minded compared to what is possible with a little imagination. In poetic contrast to the Eastern and Far Eastern Calculi, I choose to call this mere engineering Western Calculus, and I thus crown myself its inaugural pope. I kid, of course.
It’s hard to say where I’ll be taking these newfound theories from here, but rest assured I will be thinking about them idly all day and all night from here to probably forever. To be frank, it’s frustrating to think about this sometimes, and it’s easy to lose my own sense of confidence. I really feel like I’m chasing a dragon’s tail here. I’m just closer to the end now.