13 years, 3 months ago

On being and becoming

Link: http://weblog.tomgraves.org/index.php/2011/03/19/being-and-becoming/

Just one of those too-early-in-the-morning ideas that arise between getting up and getting moving for the day.

Been thinking back to my (too-many) years of programming, and the various ways we described the process of change, right down at the level of code.

As a language, English fits quite well with the ideas we express in software. (Or possibly vice versa, of course.) Everything is based around a notion of state: a variable is some value, and then it becomes something else, with not much mention of what happens in between.

Much the same notion appears in most (IT-oriented) enterprise-architectures: there’s the current state – what something is – and the future state – what we want something to be – with, again, not much description of what happens between, other than perhaps some vague plan or ‘roadmap’ for change.

But in the real world, there is no state. Everything is in transit, in flux, constantly becoming something else, moving constantly from has-been to being to will-be. Few things follow a simple true/false logic, switching instantaneously from one predefined state to another; instead, most things follow a more blurry, messy modal-logic of probability and possibility, and sometimes (often?) may arrive somewhere else entirely other than what we expect. So how do we describe that fluidity, that emergence?

What triggered this off was a half-awake pondering about the old programming notations of : and =. The various programming-languages often use these in different ways, an almost random mixture, in all manner of combinations: :, =, ::, :=, =:, == and so on. The : tends to be used for definitions, for constants; the = can be used for definitions too, but also often carries the idea of assignment, of change, as in the original BASIC syntax of ‘LET X = …’. Confusing.

Yet it struck me that this can also be a neat way to describe being versus becoming:

  • : implies definition – it denotes what something is, a condition of being
  • = implies intent – it denotes what something will be (or that we hope or intend something will be…), a different condition of ‘being’ than that which currently pertains
  • hence := implies a story of change, the transition from : to = – it denotes the often-messy, often-iterative, always-somewhat-uncertain process of becoming

It still doesn’t give us any simple way to describe the past, to denote ‘what has been but no longer is’ – but that’s something else to ponder about, I guess.

As I said, it’s just an idea. But useful to someone, I hope?