Truth, Beauty, and…Software?

Truth, Beauty, and…Software?

Castle in the Air The three natural roads to God are truth, goodness, and beauty. That’s because even though we can perceive and understand them on a natural level, they still speak to us of some aspect of God who is, per St. Thomas Aquinas, Truth itself, Goodness itelf, Beauty itself. We can (sometimes) know that a statement is true or false; we can know (sometimes) that an act is good or evil; we can know (sometimes) that an object is beautiful or ugly. These are human-scale concepts, and yet the true, the good, the beautiful that we know are so because they in some way participate in or are consistent with the Truth, the Goodness, the Beauty of God.

I’ve mentioned this a time or two recently, and I’ve usually mentioned that as a Dominican I tend to approach God by way of Truth. It struck a couple of days ago, though, that that’s a recent thing for me. Since my reversion to Catholicism, I’ve been studying theology and philosophy, and what’s so about God and what the Catholic Church teaches, and so naturally I’ve been focussing on Truth and relating to God in that way. But that’s new. My historical approach has been through a love of beauty.

Not, mind you, the beauty of churches, or of landscapes, or of flowers, so much, though I’ve been learning to look for that. No, the beauty that catches me is the beauty of prose and of well-wrought fiction, which is why I’ve been reviewing books on the ‘net for over fifteen years. It’s the beauty of well-made music, which is why I’ve got an absurdly large music collection, and why I post tunes on Fridays. There’s lots of neat stuff out there, and I like to share it.

And—and it was contemplating this peculiar kind of beauty that brought this trait of mine to my attention—the beauty of software.

I don’t mean the visual beauty of well-designed user interfaces, with pretty icons and good use of color; I mean the beauty of the software source code itself, and even more the mathematical beauty of the logical structure represented by that source code.

Weird, sure.

When I started working as a computer programmer the ‘net as we know was still years in the future, and many people still didn’t have computers at home. People would ask me what I do, and I’d tell them, “I build castles in the air.”

And that’s still a really good description. A well-designed program has an architecture to it, and a plan. It’s that architecture that helps you find your way around the source code: you can’t hold all of the code in your mind at once, but you can hold the architecture in your mind. You do the same thing as you walk about your house: you couldn’t tell me the dimensions of the bottom drawer in the counter to the left of the kitchen sink in your kitchen, or its precise position in the room, measured in inches from the northwest corner, without walking to your kitchen and making use of a tape measure. But on the other hand, you can to your kitchen and locate the drawer without any trouble, because you understand the architecture.

That’s a well-designed program. A badly designed program is another kettle of fish, or perhaps I should say “can of worms”. Or snakes. Or spaghetti. Or, perhaps, a hovel rather than a castle.

I’ve been programming since I was 14; I’m now 51. I’ve spent far more than Malcolm Gladwell’s “ten-thousand hours” learning my trade. And for most of that time, I’ve been trying to write beautiful programs: programs that work, that can be seen to work, that can be understood. I think I’ve gotten to be pretty good at it.

And yet, it’s so hard to explain. I have a grasp of how parts of programs fit together, and how to make them fit together more cleanly; but I don’t always have words for it. I can “feel” it (in the sense of having a sense for it, not in the sense of having emotional feelings about it), but I can’t always explain it right away.

Still, it might be interesting to try. I’m a mediocre musician; I’m an adequate writer; but as a programmer, now—that’s where I build my castles.

____
photo credit: balt-arts via photopin cc


Browse Our Archives