Saturday, March 7, 2015

nuh-uh, didn't say the magic word!

I decided to tear directly into the second Second "Science of Discworld" book when I realized it deals heavily with matters of mind and consciousness. It also talks about magic (here, in the Arthur C Clarke "indistinguishable from sufficiently advanced technology" sense) but ties in "magical" technology with the poor understanding of cause and effect we all tend to have as children:
Parents and carers are always transmuting the child's expressed desires into actions and objects, from food appearing on the table when the child is hungry to toys and other birthday and Christmas gifts. We surround these simple verbal requests with 'magical' ritual. We require the spell to begin with 'please', and its execution to be recognised by 'thank you'.
[...]
Coming home in the car and clicking the garage open, clicking the infrared remote to open or lock the car, changing TV channels - even switching on the light by the wall switch - are just that kind of magic. Unlike our Victorian forebears, we like to hide the machinery and pretend it's not there. So Clarke's dictum is not at all surprising. What it means is that this ape keeps trying, with incredible ingenuity, to get back into the nursery, when everything was done for it.
(Later they point out that you don't need high technology to continue this "making wishes" form of life, just lots of money -- "Feudal societies have a baronial class, who are in many respects allowed to remain in their nursery personas by being surrounded by servants and slaves and other parent-surrogates.")

I liked the reminder that the Victorians liked to expose the workings and fine engineering cleverness. But more than that, I was struck with how my preferences in software development are Victorian, in that sense. I prefer systems that "show their work" and expose the plumbing. That doesn't seem to be the dominant trend in the industry, however. In the late-90s, early-00s it was "Unix vs Microsoft" in development style, the latter giving you very powerful toolsets that a developer might not ever quite understand the flow of. Things "just worked" and coder life was productive and grand. Or they didn't, and coder life was misery and suffering. That Microsoft style seems to be seeping more and more into the stack that is still more at home on Unix-like systems, despite the culture those systems came from, the culture of relatively easy to understand and decoupled parts communicating, ideally via pipes.

There's a reductio ad absurdum of this, of course, that says why should I be uncomfortable with this kind of abstraction in technology when I accept so many others underneath it? I took some elementary assembly language in college, and even programmed an Atari game... but the amount of abstraction embedded in this laptop I'm writing this on is unfathomable. Just thinking about what's going on to get pixels glowing on the screen, the number of interlocked electronic subsystems in constant communication, a weird dance of impulse and intent... but, it's pretty reliable! It's acceptable to me because it hardly ever fails in subtle ways - or at all, for that matter. This is in contrast to these newer "framework of the months" for software development... if I'm coding with my preferred Imperative style of simple code, libraries for the tough stuff, stack traces that make sense... I know I can do pretty much anything a browser can allow. When using one of these magical frameworks, I have to see if the framework permits it, or if I'll be given the extra burden of working around it to meet the specification.

But, I persevere. Because these tools are powerful, and when I take enough time to really learn and get to know a toolkit, I'm empowered. Also, because my real goals are to do make interesting things, and a lot of the people with interesting things for me to make (and the budgets to pay me to make them) love these toolkits, and I want to be easy to work with.

Anyway.

The book extends some related ideas that to my ear starts leaning to Taoism:
A Spinozan view of child development sees the opposite of wish-fulfilment. There are rules, constraints, that limit what we can do. The child learns, as she grows, to modify her plans as she perceives more of the rules. Initially, she might attempt to cross the room assuming that the chair is not an obstacle; when it doesn't move out of her way, she will feel frustration , a 'passion'. And throws a paddy. Later, as she constructs her path to avoid the chair, more of her plans will peaceably, and successfully, come to fruition. As she grows and learns more of the rules - God's Will or the warp and woof of universal causation - this progressive success will produce a calm acceptance of constraints: peace rather than passion.
(I had to confirm I knew what "throwing a paddy" meant from context... and like I feared, it's a bit racist.)

I hadn't heard as much about Spinoza in a while, I think I dig that kind of pantheistic outlook.

Magic!

No comments:

Post a Comment