The Zen of Computing

Many programmers have a tendency to cling to outmoded technologies. This unwarranted attachment to the past can lead to a great deal of suffering, most of which is self inflicted. The suffering can be anything from unneeded arguments with peers, to job loss, or even the end of a career. In this article I will discuss the relationship between Buddhism, attachment and computing.

It seems to me that I have read an unusually large number of technical books or articles with titles like the The Zen of X, where X can be anything from graphics programming to Jeff Bezos. The one thing most of these texts have in common is that they rarely mention anything specific about Zen Buddhism. In this case, however, I truly want to talk to about Buddhism and computers, and particular about the Buddhist doctrine of non-clinging, or non-attachment. I believe this doctrine has a special application to those of us who work with advanced technologies.

The central tenants of Buddhism are found in The Four Noble Truths. The second of the four noble truths states that most of the suffering in this world is caused by our attachment to things, people and ideas. One of the problems with clinging to the things of this world is that everything in life changes. Nothing stays the same. Inherent in the Four Noble Truths is the idea that nothing in life is permanent.

If nothing in life stays the same, then we suffer if we try to cling to something that is, by its very nature, destined to disappear. Our attachment to a particular computer technology may seem like a virtue for a time, but after awhile it will cause us and others nothing but suffering.

Open Minds

When we first learn about computers, we are open to new ideas. As a result, many of the big movements in the programming world start with college students or the younger members of a corporation. These young individuals are not yet set in their ways.

Two or three years ago, I had occasion to go back to school for a time. One of the first surprises I had when I got to school was the overwhelming preference the students I encountered had for Java. In my professional life, I was one of small group of people I knew who were taking Java seriously. But at the school I was attending, almost everyone, if given a choice, wanted to program in Java. The students I encountered were not yet set in their ways, and they were open to new technologies to which others in the professional world had closed their minds.

It is odd that we should become attached to a particular computer language. After all, a computer language is mostly syntax. How can one get irrationally, and sentimentally, attached to a bit of syntax? And yet we do.

I have heard people vehemently assert that a particular type of while loop is better than another kind. When declaring a class, one language might put the keyword class first, and then list the identifier that names the class. Other languages list the identifier first, and then the keyword class. Or perhaps they call it an object, rather than a class. There are arguments in favor of each keyword, and each technique, but surely no one would get emotionally attached to one technique or to one keyword? It is just too trivial an issue. Right?

Irrational

Our sometimes irrational attachment to seemingly trivial chunks of syntax has a serious side. If a programmer becomes attached to a particular language that dies out, then that programmer can lose their job, and be unable to find a new one.

The irony here is enormous. Engineers are supposed to be unemotional. They are supposed to look at life from an objective, scientific point of view. And yet when it comes to looking at computer languages, and computer platforms, many engineers take a deeply emotional stance. It is not at all uncommon to hear an engineer asserting categorically that their technology A is better than technology B, even though they have never taken a serious look at technology B. This happens all the time.

We get in the habit of using one type of syntax, or one technology, and then claim that it is better than another technology when what we mean to say is that it is more familiar to us. This xenophobic view of new technologies ultimately ends up stultifying the careers of individuals, and unnecessarily slowing down progress. In the worst cases, superior technologies never get adapted simply because they are new, and make some engineers uncomfortable.

Marketing Slime

The job of a marketing expert is to find ways to get people to become attached to a particular brand name. In the computer world, we are always being asked to cling to a particular technology. Marketers want us to believe that their language, their compiler, their OS, is the best technology, now and forever. After awhile, all products become sticky and slimy, coated with layers of marketing hype. When that happens, we need to wash our hands, to clean the lenses through which we view a technology, and to see it as it really is, and not as marketers hope that we see it. After a time, technologies change, the world shifts, and we need to move on. Before we can move on, we need to stop clinging to what was once true, and open our eyes to see the world as it is now.

Everything changes, everything passes. It is easy to become blind to this basic fact. We need to learn to look dispassionately at the world as it is, and not cling sentimentally to a past that no longer exists.

Summary

Watching modern technology is like looking through a kaleidoscope. At some point in our youth, we peer through the kaleidoscope and see a particular pattern that happens to be present at that point of time. We find some particular part of the pattern, perhaps a bit of blue and green down in the bottom right, that appeals to us. Many of the best minds peering through the kaleidoscope at that time agree: of all the patterns visible at that moment in the kaleidoscope, the bit down in the bottom right is the most elegant, the prettiest, the most aesthetically sophisticated. So we make that bit of the pattern our study. Over the years, the kaleidoscope slowly revolves and that bit of the larger view changes. Patterns shift, and the blue and green bit starts to become more of a yellow, blue and green bit. And it is no longer quite as pleasing to the eye. And the bit up in the upper left quadrant has changed too. The muddy colors and awkward patterns in that part of the kaleidoscope have changed. Now most of the best minds agree that the it is this bit in the upper left that is prettiest, and most elegant. But some will stubbornly cling to the bottom right of the kaleidoscope, even though the great minds who once proclaimed its significance have now moved on and focused on the upper left.

Technologies change. One day a particular language or OS is best, and then a few years later that language may still be very good, but its advantages have paled in comparison to new technologies which have built on it. We want to cling to the past, and we become blind, unable to see how the world is changing around us.

For a Buddhist, this panorama of changing landscapes is not just a phenomenon of the technological world, but a central fact of life. They see that the world is always changing, and that our suffering comes in large part because we want to cling to things that will not stay the same. We might want the world to stay the same, but it will not. None of it will stay the same. All of it will change.

Technology changes all the time. We can’t learn a new technology every day, so naturally we stay with a technology long enough to learn it well. During that time, we feel the temptation to start to cling, to become attached. But it is best to follow our Buddhist friends in this, and learn that there will always be a time when we have to let go, to stop grasping, and to move on. Our temptation to cling is only natural, but our refusal to let go is dangerous, even fool hardy. The Zen of not clinging is a hard lesson to learn, but if we can learn it, then we can be much happier, and much more successful.