Programming inspires Artistic Abstraction

The act of programming often requires an ability to define abstract concepts into a set of behaviors and characteristics that can interact with each other. These concepts are refined and connected with each other to achieve a desired experience for those that engage with the final creation. This is literally the same creative ideation that artists have used to transform abstract concepts and emotions into tangible art objects for ages.

Yet there is often a divide in the langauge used to describe programming and the creativity required to create a complex system or framework. Tools created by programmers with the intent for them to be used by an untold number of other folks absolutely involves creative thinking and an ability to work with abstraction. This is because the finished tool is likely to be wielded in a number of unexpected ways over time. There has also been an observed cultural bias in the United States in places we have studied and worked in that proports programming to be entirely logical and for the scientific minded only. This clashes with our years of experience working as a software engineer, as a majority of the code we’ve read is an amalgamation of voices using the same programming langauge to achive a vast and diseparate collection of ideas and expressions of thought.

Code repositories as a choir repeating over itself

One perspective we can offer towards seeing the artistry in code is to reframe how code repositories are viewed. These are spaces where code can be maintained over time by different programmers, each with different perspectives and writing voices but a shared desire to shape something into a greater version of itself with each iteration. Like artists or writers working within a genre, there are expectations of the kinds of themes and objects used within each new work that is added to the broader aesthetic. Over time these individual contributions create a wider experience and conversation as engagement with the creation continues.

Within large repositories maintained for several years, especially within private corporations where code repositories can remain active for decades, there are projects that contain code written by now deceased programmers. This code may be essential and could influence how new programmers think of the created system, establishing a sort of style to be followed as new changes are made. This interplay between newer programmers writing code in older systems often strikes us as a form of transcription, a process similar to an artist recreating the work of another artist in the genre as closely as possible to understand the mechanical process required to achieve an aesthetic result. Ultimately the interaction of new ideas with the old designs of a system when programming can be challenging to navigate, but we feel that the interlocking of all of these written directions and conceptualizations made by different minds is vital to establishing a working paradigm that can exist and be engaged with in intended ways.

Depending on the growth and direction of the project associated with the code, there can come a time when all of the contributions of these programmers is phased out. There can be a sadness in the passing of a perspective shared by the departed, as well as an exuberance for the changes which follow the removal of a module of unnescassary or restrictive code. As these changes unfold, new combinations of ideas appear and become possible to manifest into new versions of the code. Much like releasing art into the world to be interpreted in uncontrollable ways by an unknowable audience, programmers are not likely to see or control every way their finished creation is engaged with. Yet it is the persistance of engagement from programmers with these coding projects that ensures the survival of the manifested creation, as new voices shape the codebase like the shifting of singers within a choir of abstract thinkers humming a tune beyond the grave.

New art creates new possibilities, just the same as new code creates new possibilites, and the remediation of established conventions in both mediums is what strengthens its power as a tool of expression.

Programing as Tool for Expression

While new technology is often afforded an inheriant positive association when it is applied to an established field of study or to assist in an act of labor, it can be just as detrimental as it is innovative. Put more concisely, adding technology to something doesn’t make it better than it was before by virtue of it having technology involved. The danger of assuming digitalization is always better or optimal is that it elevates the process that is used above the intial abstraction or intended experience of the creator.

However, combining technology, programming, and artisitc process does present a series of advantages for facilitating specific experiences with an audience. Some of these include:

Interactivity: Installations in modern art mueseums are capable of reacting to individuals that are in the same space or are observing the creation. This could look like the lighting in the room shifting as movement is detected in the space, or walls shifting in proximity to the viewer based their hand gestures towards a camera. By utilizing data from sensors to generate changes in the environment the artists creation is able to engage an audience in a visceral way that differs from more static media like paintings or sculpture.

Generative Art: While more recent technology advances seem to herald generative AI art as the ultimate feat of generative art, there are more diverse examples to be found. We’ve roughly conceptualized generative art as any art made by a mostly autonomous system using rules to acheive an output within a range of possibilities. Very often it is the randomization and possiblity for unimaginable inputs to render a result that excites the audience or participants engaging with a generative artwork system.

Data Visualization: Seperated from its context in data science to present infomation in a meaningful way, data visualization can also be considered any process that visualized complex information into a percievable form. Comprehension does not need to be gurantued when used in an artistic context, and absurdity can be leveraged to create associations between unexpected metrics.