Wenqi He · Research Software Engineer, NCSA, University of Illinois
無眼界 / No realm of eyes,
乃至無意識界 / nor of consciousness.
無無明 / No ignorance,
亦無無明盡 / nor end of ignorance.
乃至無老死 / No old age, no death,
亦無老死盡 / nor end of either.
無苦集滅道 / No suffering, no cause, no relief, no way out.
無智亦無得 / No knowledge, no wisdom, no attainment,
以無所得故 / for there was nothing to attain.
菩提薩埵 / The bodhisattva,
依般若波羅蜜多故 / relying on this prajnaparamita,
心無罣礙 / has nothing weighing on the mind.
無罣礙故 / And because nothing weighs on the mind,
無有恐怖 / there is no fear.
遠離顛倒夢想 / Transcending all delusion and fantasy.
究竟涅槃 / Thus is the ultimate nirvana.— 般若波羅蜜多心經 (trans. Wenqi He)
We are a creative species. But we don’t create in the truest sense. We don’t create matter or life—we merely transform them from one form to another. And yet we do seem to create ideas. Which, depending on your position, is a power shared with God, or gods, or aliens somewhere out there—or with no other beings at all.
We “create” material things that are either consumable, like food and clothes, or durable, like bridges and statues. Either way there is a definite objective. Once achieved, the thing is either consumed and destroyed or decays gradually through time. There is a natural end.
We don’t “create” life, but we watch it grow, mature, age, and die. Things are constantly changing, but there is a homeostasis that sustains it. Life knows how to regulate itself. It has a shape it is growing into. Even the oldest tree knows when to stop.
We call ourselves software engineers. But we are not engineers in the traditional sense. We don’t create material things—even though what we create has material consequences. We are not limited to consumables or durables. We could be, of course. A one-time script, run once and archived. But more often, software grows as requirements change. And unlike material things, these condensations of human desire are never consumed and never completed. They keep accumulating, compounding. Satisfy one need and you are bound to discover the next. Desire is never satisfied. Such is its nature. There is always more to add. New features beget more new features. And all features come with bugs, and each bug fix begets more bugs and more bug fixes. It grows like a living organism—but a pathological one. A cancer. No limit to its growth, no terminal shape it is growing into, until you remove it surgically or it keeps growing and kills the host.
So the only thing we truly create—ideas—is in some sense more complex than the things we cannot create and the things we are made of. How ironic. There must be some philosophical or theological interpretation of that. But I am neither a philosopher nor a theologian, so I will leave it there.
Software is not the only kind of such creation. Law, mathematics, any field that relies on building a coherent conceptual system shares this nature. Everything accumulates and compounds. It never takes a terminal shape, and our use of it does not deplete it. Invoking a legal statute or a mathematical theorem does not diminish either. Neither does running a piece of software. There is always force to add and almost none to subtract.
So the central challenge of software is never about its effects on the physical world, or on those who use it. Nor is it ultimately about systems or algorithms or anything computer science teaches—though those matter. It is about the effect on those who create and maintain it. Those who must hold the ideas a piece of software embodies inside their heads. The object is not material. It is pure thought. And because it is liberated from the physical world while we are not—while we remain tethered to our wet, carbon-based, limited brains—the tension is irreducible. It is the tension between two worlds: the material and the ideal. There is no resolution. Only the living of it.
Are we doomed then? Of course we are. The loss of coherence and comprehensibility loom on the horizon the way organ failure looms for even the healthiest person. We are all doomed from day one. And what we can do is not unlike what we do with our own lives—prolong it, consciously or not, until one day we can’t anymore.
So much for pessimism. What do we do practically?
As Silenus told King Midas when finally caught—the best thing for man is not to have been born. The second best is to die soon. We could refuse to build new software when existing software suffices. We could reject feature requests. We could decide to kill a project before it kills us. But if we must bear witness and participate in what we know to be a death sentence, then we can at least try to slow the progression of its terminal illness—not to avoid the inevitable, but to grant it dignity to go out by swift execution, not slow spiral of metastasis. To be snuffed out in perfect lucidity and vitality, not left withering on a deathbed. This requires discipline. We must resist growth at every turn. Understand everything we can about what we are building and why. Perhaps this awareness of mortality is itself the only thing we need. Software architecture, design patterns, best practices—all of it follows naturally from this awareness. Not as rules but as instincts that develop when you have genuinely internalized what you are dealing with.
AI didn’t create this problem. And despite what some hope and others fear, it hasn’t solved it or even come close. It hasn’t exacerbated it in any fundamental sense either. The tension at the heart of software—between the unbounded nature of ideas and the very bounded nature of the minds that must hold them—is untouched. The productivity gains, the new ways of writing code, all of that is orthogonal to the fundamental problem.
But AI does something else. It accelerates the confrontation with the inevitable. It helps the cancer reach its terminal stage so much faster. Inheriting a codebase you cannot understand or maintain is like being told you have five days to live instead of fifty years. The outcome is always the same. But your experience of reality changes—it strips away the delusion that there was ever any hope to begin with. The delusion that life lasts forever, the one we live under every day.
When the horizon collapses, every moment and every decision carries so much more weight. In that sense, that forced confrontation with the irreversibility, finality, and mortality of software—with the clash of the material and ideal, finite and infinite, ephemeral and eternal—might be the most clarifying thing to happen in a long time.