While most people know of the Buddha as an exemplar of peace and wisdom, and look to him for spiritual teachings and guidance, not many people appreciate how he anticipated many of the foundations of computer technology. As someone who works every day on Buddhist texts in a digital context, I can’t help but see a whole range of fascinating parallels, and in some cases, even historical precedent. Let’s see some of the Buddha’s ideas that we can find in modern tech.
The most fundamental principle that all modern computing technology rests on is binary code. A switch is on—current flows; it is off—current stops. From this basic function of on/off = 1/0 all our modern computers are built.
As is well known, the number zero was unknown in the West. The reason it’s not noticed is not arbitrary; it’s based on a fundamental principle of consciousness. We notice what is there, and especially, what moves. It takes effort and training to recognize absence, and even more so, to notice that absence is every bit as important as presence; in fact, that presence only has meaning because of absence. This is explained in such suttas as the seven elements at SN 14.11:
The element of light appears due to the element of darkness. … The element of the dimension of infinite space appears due to the element of form.
It is due to the Buddhist emphasis on emptiness that Indian mathematicians developed the notion of zero, and from there, exported it to the West. Once the idea of zero was established, it made possible the development of “codes” which allow for the translation of more meaningful expressions into binary form. And that, in a nutshell, is how computers work.
I don’t want to give the impression that our computing technology has fully caught up with the Buddha—far from it! For the Buddha was not limited to mere binary logic, but frequently used the tetralemma, based on a four-fold logic:
- A + B
- Neither A nor B
This set of options extends the scope of binary logic, allowing for the possibility of shades of grey; that things in the world are not always reducible to one thing or the other, but allow for a complex, irreducible superposition of states. And this is the fundamental principle of quantum computing. Leveraging the ambiguity of the superposition of particles, quantum computing holds the promise of a, well, quantum leap in processing abilities; and perhaps, even a shift in the kinds of problems solvable by computers.
However, despite their great promise, quantum computers are still mostly theoretical, and practical demonstrations have been modest. Still, this is the most advanced frontier in current computer development.
Note that even quantum computers still don’t catch up with the Buddha, for they ignore the last item of the tetralemma. The idea of a state so subtle that is not even definable by negation or superposition is not, so far as I know, something that has even occurred to modern tech.
Modern development of AI is driven by the assumption that “intelligence” or perhaps even “consciousness” is not a metaphysical property, but a conditioned phenomenon. In this analysis, the Buddha too led the way. He rejected all metaphysical explanations of consciousness, and dedicated much of his life to showing how consciousness arises dependent on conditions.
Of course, the nature of those conditions differs. IT tech assumes that intelligence is a purely physical property that will emerge from hardware and software configured properly. It should go without saying that this is a sheer assumption, and there is no evidence for it whatsover.
The Buddha rejected both metaphysical accounts of consciousness and materialist reductionism. He regarded both approaches as utterly inadequate, and failing to answer the question in any meaningful way. Instead, he pointed to experience. He looked at the conditions prevailing when actually experiencing consciousness, and saw how these could be trained and developed in a positive way, to overcome suffering. Rather than seeing mind and body as separate, or rejecting mind altogether, he saw the primary reality as the interconnection between physical and mental properties.
I think that the current approaches to AI will fail to develop anything even vaguely like “strong” AI; and I think the IT world doesn’t even really have any clear idea of what “consciousness” is. Nevertheless, there is no reason in principle why an artificially developed machine, a “computer” if we still call it that, should not support consciousness in a way similar to how the body does. Whether this ever happens is unknowable. Which brings us to:
It’s tempting to think that we can have a free and final knowledge of all things, or at least, of all things we want to know. And the metaphysical basis of most religions is the assertion that they possess such unique and final knowledge, a source of solace for devotees. Yet the reality of our lives is far more limited than that, defined as much by what we don’t know as by what we do.
The quest of science was to take such claims out of the metaphysical realm and give them substance. By applying the methods of experimentation and inference we could learn all there is to know.
However, early in the 20th century a series of developments in science and philosophy put paid to this idea. Heisenberg realized that the position and momentum of a particle could not be determined with precision simultaneously: quantum uncertainty. Wittgenstein said “Whereof one cannot speak, thereof one must be silent.” Gödel showed that no complete and consistent set of mathematical axioms was possible. And Alan Turing, the chief architect of the modern computer, applied this notion to his idea of the “halting problem”: can we determine with certainty from a description of any computer program and its input, whether the program will finish running or continue to run forever. Turing showed that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist.
The acceptance of the limits on knowledge seems like a defeat. Even though everything we know, in fact, tells us that knowledge is limited and uncertain, we still long for certainty. And it is this gap that religion, and formerly science, claimed to fill. But the paradox is that once we accept the limitations on knowledge, we are free to focus on the kinds of knowledge that are actually achievable: real knowledge. And so the limitation of the halting problem lead directly to the invention of modern software. So that fact that we can, today, google whatever subject we like and learn about anything is a direct result of accepting the limits of knowledge.
In the same way, the Buddha declared that certain things—most famously the ultimate origin of the cosmos—were unknowable. Rather than being a limitation of his philosophy, he saw this as freeing us from irrelevant distractions so we can focus on what is both knowable and important: the end of suffering.
Computers are great at generating huge stacks of data, but something that has to be handled without choking all the systems. We do that by using compression. The idea is that data contains a lot of repetitive stuff, and we can express that in a simpler form. Take a simple list:
1 + 1 + 1 + 1 + 1 + 1
We can express this more concisely by:
1 × 6
And that is essentially what compression does. It minimizes repetition and maximizes uniqueness of data.
This is something that we find constantly used through the Buddhist texts. They use signs, most commonly pe, to indicate points of elision, where text has been abbreviated and is to be expanded in full by the decompression algorithm, AKA the monk or nun doing the chanting. There are, based on a quick search, over 40,000 such instances in the Pali canon.
The flip side of the compression is the repetition. There are relatively few truly unique phrases in the Pali canon. Most things are repeated, either verbatim or with small variations. Important teachings are repeated many times. The first phrase of the jhana formula (vivicceva) is repeated 375 times, for example.
All this repetition serves an important purpose: preserving the integrity of the data. Important files are backed up in multiple locations. Here, “multiple locations” doesn’t mean hard drives, but, originally, the memories of reciters, and later, manuscripts. This creates a highly resilient system, which can—and has—survived massive outages across much of the network. Which brings us to:
These days, our computers mostly rely on centralized servers, huge banks of computers in dedicated facilities, which run the internet and much else. For a long time, though, advocates have pushed for a more distributed model. Under such a system, each computer would not be simply drawing from the server, but would itself act as a server, contributing to the network. Such a system has the advantage of not being centrally controlled, and hence being far more resilient. Today, advanced systems such as Ethereum are beginning to implement these ideas.
But the Buddhist world has always relied on distributed systems. The texts are not considered as being under the exclusive control of any institution. Rather, the institutions contribute, through training, education, and resources, to maintaining an open, flexible, and distributed grid. In ancient times, monks and nuns moved freely from one monastery to another, taking their texts with them. Later, different monasteries would maintain scriptures, which again would move from place to place.
Hand in hand with the notion of a distributed system is the concept of open source. Before the Buddha, the primary model of text ownership was that of the Brahmins. Believing themselves to be the chosen custodians of the literal expression of God’s word on earth, they jealously guarded the Vedas and passed them down in secret. That way they could control the texts, and, crucially, monopolize the revenues they gained from performing the Vedic rites.
The Buddha criticized this and frequently endorsed and advocated for an open source approach. He made all his teachings available for everyone, and expressing denied having the “closed fist” of a teacher. He encouraged open participation by all members of his community, explicitly stating that monks, nuns, laymen, and laywomen should gather and recite his teachings in harmony.
Today, the open source model has become one of the most distinctive features of the computing world. Despite the fact that we live in an era of unprecedented corporate overreach and intellectual copyright litigation, open source software has grown to dominate. As just one example, the most significant open source project, Linux, now runs almost all the internet, almost all supercomputers, most mobile phones and tablets, and a large amount of embedded computers. After years of trying to extinguish open source, even Microsoft has capitulated: you can now install Linux from the Windows app store! And Linux is far from the only example. Discourse, the forum platform you are using, is open source. You are probably reading this in Chrome or Firefox, both open-source browsers. We use open source software every day, and we don’t even notice it.
This hasn’t happened because of a philosophical love of fairies and unicorns. In fact, it has happened despite a determined opposition by corporate interest. It has happened because it works: open source, in many areas, is simply a more effective way of doing things.
Version control, forking, and merging
In a world where complex software is often maintained by large groups of people across the world, managing the different versions becomes a significant problem. The same happened in the world of Buddhist texts. When monks and nuns spread out across India and further, taking texts with them, it became increasingly hard to maintain the consistency and integrity of the Dhamma, AKA the code base.
These days, we mange this using version control systems, of which Git is by far the most successful. And yes, Git is open source. Git allows for code to be forked (like when a nun sets out from a monastery for distant lands, taking the suttas in her mind) and merged (as when she arrives at a new monastery, and recites the texts she knows alongside the resident nuns.)
Sometimes this system breaks down, and a schism or split appears in the Sangha. Just as in the modern day, sometimes groups of developers cannot agree on how they want to take the project forward, so they fork the code and develop it independently. This has happened repeatedly in Buddhism, with the emergence of various sectarian canons. Nevertheless, while the texts diverge in countless details, it is obvious to all who have studied them that they hark back to a common “code base”, which must be the Buddha’s teachings as collected by the Sangha after his passing, before the “forking”.
In the Buddhist traditions, as today, forking is traumatic for the community. It’s rarely if ever just an even-handed assessment of different priorities and directions, but is driven by different values. So forking is often perceived as a bad thing, which consumes unnecessary energy and work. While there is of course some truth to this, it is also the case that forking can add additional resilience to a system. Sometimes it is not really clear what is the right approach, and only by trying it out can we see what works.
One of the ways that the variations in code are kept in check is by developing open standards. For the internet, for example, standards are developed by the World Wide Web Consortium. This defines the meaning and intended use of the building blocks of the internet, providing a framework of reference for developers. However, such standards are not mandatory. In fact, software frequently, perhaps normally, doesn’t fully meet all standards. Rather than taking a punitive and controlling approach, standards bodies aim to influence in a positive manner by making development and interoperability easier for everyone.
This is similar to the role of the Sangha as traditional custodian of the texts. Again in contrast with the Brahmanical approach—which recommended pouring molten copper in the ears of a low-caste person who listens to the Vedas—the Sangha acted as a centralizing influence, holding Councils to standardize the texts. But nowhere, historically, did the Sangha assert unilateral control over the texts or punish other uses.
If we look at how the different canons are organized, we can see that they all use similar structural principles: Agamas or Nikayas of the Digha, Majjhima, and so on; division into samyuttas, vaggas, and so on. There’s also similar narrative conventions, introducing each text with a location, and so on. And yet the specifics of each canon are quite different. Clearly, if the job of the Councils was to create a single letter-perfect edition, they failed. On the other hand, the canons that have emerged do share a similar nature to, say, different documents produced to the same standards. While not identical, their common features are easily discerned, and the differences are rarely critical.
Data and community
There is, I think, a more subtle way in which computing and the Dhamma relate. Both, in their more technical aspects, tend towards a certain reductionism, even an inhumanity. In its extreme forms, the Dhamma reduces humanity to a buzz of conditioned energies, devoid of meaning or significance. Similarly, technology has a dark side: it encourages a culture of not caring, of hate and abuse, such as the users of the internet are all too familiar with. Once people are reduced to images on a screen, or even binary bits, it becomes easy to treat them in ways that we’d never treat a human being beside us.
The computing world tries—with limited success—to overcome this through connection and community. There is a recognition among some programmers that their work is inherently communal, that all code relies on other code. In any software project, managing the team is as significant as defining the software.
Similarly, the Buddha laid great emphasis on community, love, and mutual support. He famously said that good friendship is the whole of the spiritual path. Countless teachings are aimed at explaining, not just how the mind works, but how to put that understanding to good use in developing close and supportive community. While it’s important to understand how nuts and bolts work, it’s even more important that we don’t treat each other like collections of nuts and bolts.