Why Programming is Almost Certainly Magic

Raffy Efrényi

Raffy Efrényi

@Raffy27a

If one were to look at systems of magic, ancient or contemporary, they would certainly see similarities between the current practice of programming, and concepts of the arcane. To understand the correlation and take note of useful ideas, we must first ask ourselves the not-so-straightforward question: what is magic?

What is Magic?

The word "magic" is a very broad term and can be used to describe a wide variety of things. Throughout time, it has had many different meanings. People have admired it and feared it when appropriate. Perhaps a more modern definition would be valuable to us: for the purposes of our pursuit, we shall consider magic to be an actuator; a medium through which potentiality collapses into actuality.

A system of magic is a collection of symbols with seemingly arcane meaning, understood exclusively by the initiated. These symbols are used to invoke aspects of a reservoir of power, latent within the vast universe, the mechanisms of which are not well defined. Magic is necessarily utilitarian: one does not care how the magic works, only that it does.

The magician is a conduit for the power of the universe, and the symbols are the means by which this power is invoked. The correct placement of symbols, the right invocation, and presence of the necessary elements imply that the spell or ritual in question will succeed, no matter if it is one of malevolence. For the ritual to succeed, it is often also a requirement for the mental state of the practitioner to be balanced.

Historically, these systems of magical thought have differentiated themselves by means of their constituents. Different runic alphabets, elements incorporating archetypes and sacred geometry, as well as contemporary beliefs are all important aspects of magic.

The image above depicts a 15th-century manuscript of European magic. Medieval symbolism draws heavily on archetypes, as well as the movement and observation of celestial bodies.

What is Programming?

Programming is the art of creating a system that can be used to influence events. This system is created by writing code, which is a set of instructions that can be executed by a computer. The computer then executes the instructions to fulfill the needs of the one who wrote the code.

Software is written only by those who know how to do so; the initiated, if you will. Different programming languages provide different capabilities, and the body of a program must be expressed by keywords and conventions known to the compiler. Otherwise, the endeavor will be doomed to failure and all efforts will be in vain.

Code itself is not inherently good or harmful. The compiler and the resources of the system (such as the CPU) do not possess the capability, nor do they care to differentiate between seemingly evil and good code; they line up and execute everything unequivocally.

From the point of view of the quality of code, it is important for those who wish to partake in its creation to be able to do so in a comfortable environment that this practice demands: IDEs.

Drawing Parallels

I believe at this point it is clear to see that aspects of programming are undeniably connected with those of magic. To name a few of the correlations,

  • Code (or the keywords used to express the will of the user) is equivalent to the arcane symbols used when conducting rituals
  • The one who writes the code, i.e., the one whose will is being fulfilled, is the magician, or the initiated
  • The systemic nature of the commands required by the compiler guarantees that these will be understood and put to use: the same happens for magic with the concepts of ritualism
  • The system that fulfills these desires, the computer, is said to be the reservoir of power, beholder of resources
  • Organization is key, even if it does not decide between the perceived success or failure of the experiment
  • There are certain conduits for power (both unseen and computational), which, when used correctly, can act on potentiality to achieve actuality

Uses

By understanding ancient systems of magic, or even better, a meta-framework whithin which the agents and different concepts of magic operate, we can draw conclusions that can be significant in our everyday work, especially concerning programming.

Following guidelines is a good way to construct universally legible and clean code. It is also an appropriate way of teaching others by example.

Magic is very volatile by nature: if the magician wishes to achieve something, they must first formalize the wish, then translate it into a system of symbols understood by the actual agents. The step of formalization deals with the underlying conscious choices; everything must be specified carefully and there is little to no room for error. A fatal error can be the undoing of the practitioner, or it can mean the failure of a complex system. To avoid this, one must always consider constraints.

In order to create a robust system or a successful spell, one must also learn discipline. If balance is to be found in the mind of the magician, so too must balance be found in the mind of the programmer. Without the motivation and will to create, no system can function.

Food for Thought

Given the above, we can safely conclude that programming is a subset of magic, and not entirely unlike the practice of traditional magic. Perhaps it is counter-intuitive to examine schools of thought that are incompletely specified, but the similarities speak for themselves.

It is important to draw wisdom from many places. If you take it from only one place, it becomes rigid and stale.

Leave a comment

Comments

No comments yet. Be the first one?