% fortune -ae paul murphy

Oddball thinking about OOP

Here's a variant thought about object oriented programming: it's a failure most directly because no one's developed a programming environment that fully implements the core messaging ideas - and the reason no one's been able to do it is that the OO ideas apply mainly to analog, not digital, computing.

There's an argument to be made for the view that analog is generally less flexible than digital only because it hasn't been developed as far or as fast but is potentially faster, more accurate, and more reliable. Film, for example, is a pre-digital analog recording medium that captures, retains, and returns more information more accurately and more quickly than do today's digital methods.

The key thing about analog computing is that the message cannot be distinguished from the programming - meaning that the written form must itself be analog and convertible to program action with no loss of information.

Modern musical notation and practice fits this paradigm, and so does the engineering drawing for a float to shut off the water flow into the holding tank on a flush toilet. Both exemplify Zero Entropy Notations because both use analog symbology for processes, and both directly couple messages to action - bypassing, in the case of the toilet's float valve, the usual digital business of separating sensors, signals, actuators, and valves in favor of making the action indistinguishable from the actor via simple mechanical coupling.

The theory of cellular automata of the kind first popularized in Conway's game of Life is well advanced. In these some number of machines each with the same limited behavioral repertoire is turned loose to interact and, in that process, generate complex looking group behaviors. Thus a swarm of digital beasties is itself an analog device which can be seen as implementing OOP ideas because the swarm's programming is both defined and implemented purely as behavioral messaging - and entirely without reference to any internal structures or computational processes whether digital or otherwise.

So why has OOP never yet delivered on its promise in IT? ultimately it may find a foundational role in a ZEN for everything from nano-swarms to cloud computing, but in the past it's been an attempt to hang digital shoes on a football in hopes of scoring an end run: just fundamentally inappropriate to the technology in use and the problems we've been trying to apply it to.

Paul Murphy wrote and published The Unix Guide to Defenestration. Murphy is a 25-year veteran of the I.T. consulting industry, specializing in Unix and Unix-related management issues.