njms.ca

The black box

Published on 2024-02-23


A black box is a frame of mind. One that's perhaps disturbingly common in technical fields.

If you're not familiar with it, a black box is a system whose internals you don't need to understand. To you, it's just a machine that has inputs and outputs. We can hypothesize about a correlation between certain inputs and outputs, but we can never truly know what causes what. A black box is not meant to be understood; it's meant to be worked with.

In many programming languages, we have something called a "string." In high-level programming languages, a string can be thought of as some text stored in the computer's memory. That's not at all what they are in reality, but working on the higher-level of the system gives you these kinds of conveniences. The low-level programmers will know just how complicated working with this seemingly straightforward data structure can be, but in a high-level language, that doesn't matter. Someone else dealt with it for you. The letters could be physically engraved in Latin script on the disk platter for all it matters. In reality, strings aren't exceedingly complex on their own, but the way they are truly represented internally by the computer has meaningful ramifications--ones that are abstracted away by the idea of the "string." Not understanding the truth behind this abstraction can lead you to make poor decisions that can pile up over time.

In many ways, science is a top-down epistemology. It's a way of knowing that deals only with black boxes. We start with observations like "objects tend to move towards the ground when unobstructed" and we work backwards, establishing testable systems that correlate to behaviour observed in the real world. Science might be the most efficient and systematic method we've ever come up with to develop reliable models of the world, but it's cursed to spend an eternity on the fringes of truth. It's well observed that scientists tend to find many more questions than they do answers when investigating a particular problem, and it's probably true that there never will be an end to the questions that need to be asked. Scientists will keep asking questions until they literally run up against the barrier of their own qualitative experience--when the methodology of science is no longer a meaningful way to approach the problems it begs to ask.

Scientific apostasy

A friend of mine--a student of engineering--likes to complain about the black box mentality. The black box corresponds to whatever it is your professors don't want to teach. Instead of seeking to understand, we seek to perform. The question is not how the black box works, but rather how to work with it. This feels... wrong? It feels like it goes against the spirit of learning, of science itself. The scientist always seeks break black boxes into more, smaller black boxes. That's what science is. But engineering isn't really science, is it? Engineering is the application of science. It doesn't seek to understand, it seeks to perform.

I'm not an engineer; I'm a computer and environmental scientist. And still, I empathize a lot. Computer scientists do a lot of black box thinking too. I remember a little while ago, I signed up for this course on databases that I was really excited for. Databases are a really cool and important way to structure information on a computer. I wanted to learn how they worked, how they're implemented, how I could implement my own databases if I really needed to. And on the very first day of class, my professor proclaimed:

For this course, we'll be treating the database as a black box.

And we did. The course wasn't about databases; it was about how to interact with them. To learn how they actually work, you need to take a course that's only offered once every three years.

The relationship software developers have to the black box is different from that of the scientist. Scientists interact with black boxes out of necessity--nature is a black box they seek to understand. Computers are nothing like nature. If you dig deep enough, surely there are properties of electromagnetism we don't understand, but for the most part, computers are a system built from first principles. People have, over time, understood every aspect of modern computers, even if today few if any of us could confidently say we understand how all of it works. Computer technicians have created layers upon layers of black boxes of their own volition, out of a desire to leave the nuances of their machines to the past.

What is it that we're running from?

If you listen to "non-technical" people and how they talk about what's going on underneath the hood of their computer, you can hear a certain kind of fear in their voice. The same goes for people who mostly work with the higher-level aspects of computer systems. When they talk about strings. When they talk about anything below the application layer of the network stack. They're black boxes. We don't need to understand them. We don't want to understand them. There's that fear again. We don't want to have to face the true form of the complexity we've spent a generation hiding.

What is it that we're afraid of?

Respond to this article

If you have thoughts you'd like to share, send me an email!

See here for ways to reach out