It May Be Too Crazy to Think About
It may be too crazy to think about. The buzzing electrons stream through the mechanics of a flat-landers universe. They cobble your shoes and mystically appear invisible. But they are there.
There certainly is a physical manifestation of software running on that hot iron. Software exists through time, and it is only through space-time that a shape appears.
But as software engineers, we work with a static medium, source code. There are many tools that help us understand time like debuggers and IDEs like Squeak and Light Table. But these tools only show you an instant. A thin slice. A derivative, or a “spot trade”.
There is very little understanding of software as physical reality. A reality of constant motion.
In fact it is so difficult to even think about that our profession for the most part ignores it. When Object Oriented programming is taught, students learn about classes. They learn the statics, not the dynamics. Even algorithms are typically taught in a static way. Really good teachers will make students actually physically perform an algorithm. If someone was to ask you, “How many objects are in your system?”, could you tell them? Thousands? Millions?
We can begin to wonder if programming is anything like architecture. Is it blue print design, or is it poetic screen play? Where our electron actors dutiful play their part.
And even if software development is community poetry writing as Alistair Cockburn muses. What point to write the play if we never see the performance?
Maybe once John Graham gets Babbage’s Analytics Engine built, we can see software in all its physical glory.