Unveiling the Canvas: Are Programmers the Artisans of the Digital Age?
Throughout my professional life, I have identified as an engineer. My journey began in electrical engineering and then veered towards software engineering out of passion. Art never caught my interest; I saw it as a field heavily based on intuition and lacking structure. An intuition I was sure I did not have.
However, some recent experiences made me rethink my perception of art. As a Full Stack Developer (a fancy name for a programmer who does a bit of everything), I am aware of the value of aesthetics in web application design. Aware of my limitations in CSS (the part of web development that deals with the appearance of a web page), one day I came across Sarah Drasner’s Design for Developers course on Front End Masters. I hoped the course would help me acquire a better sense of aesthetics, which would help my designs, if they couldn’t add value to the product, at least not detract from it. But what I found was much deeper. It taught me that contrary to my perception, design is not a whimsical field or based purely on intuition. Color theory, element placement, visual hierarchy, symmetries, balance, and many other concepts, all are governed by a set of rules and principles. Rules that can be bent, but not broken.
My second experience came while browsing through the pages of Walter Isaacson’s biography of Leonardo da Vinci. Da Vinci, with his creative genius, was also subject to the science of light, shadow, and perspective when painting. His art and science coexisted, creating a harmonious dance between the tangible and the imaginative. Being surely one of the most important artists in history, he saw himself as an engineer.
These experiences gained more depth while working on a personal project. During this project, I had complete freedom to make design decisions, leading to introspection about the creative essence intertwined in programming. Approaching this project, I noticed several similarities with the methodology of traditional artists. It began with a conceptualization phase, where ideas were abstract and flowed freely, similar to a painter’s initial sketches. Then came the exploration of options, weighing different approaches and techniques, much like an artist selecting their color palette. In the intermediate stage, I often faced moments of doubt, where the project seemed chaotic and distant from the initial vision; a parallel to that phase in painting where the work appears undefined and even disordered. However, I understood that, just like in art, these moments are part of the creative process in programming. Each challenge, each error, each reconfiguration, were necessary steps that gradually shaped the final product.
In programming, a field tied to syntax and logic, is there a space where creativity flourishes? Like design and painting, programming is governed by a set of rules. However, within these rigid frameworks, there is a realm of choices. Each programmer, similar to an artist, navigates through a sea of decisions, solving problems with a mix of creativity and logic, thus imprinting a personal essence on each line of code. However, does this autonomy in programming extend to a canvas as unlimited as that of an artist like Da Vinci? Or are we, as programmers, akin to wall painters who, despite brush strokes, are confined to the color and structure dictated by a template?
The analogy reveals a spectrum. On one end, there is Da Vinci, representing the essence of transcending established norms while still adhering to the scientific essence of art. On the other end, there are wall painters, whose work, although valuable, is governed by an established template with little room for deviation or personal expression.
Now, in the era of artificial intelligence, the question of creativity becomes even more intriguing. Like programmers, can AI be creative within its framework of rules and algorithms? In our modern quest to define what constitutes art, perhaps we need to expand our horizon and consider how technology and AI are redefining creativity and the concept of art itself. Is art produced by humans inherently superior? Or is AI capable of creating art that transcends human creativity?
Recently, during a conversation between Joe Rogan and Sam Altman, CEO of OpenAI, Altman shared his amazement at the fact that tasks highly valued for their human creativity, such as painting, music, and writing, are among the first to be automated by AI. Beyond the transformative impact of AI on our society, this technological advancement confronts us with deep introspection. As we approach General Artificial Intelligence, we are compelled to question the nature of consciousness and, ultimately, what it really means to be human.
The narrative of programming as a craft presents itself as a complex and multifaceted discourse. It is a discourse that invites reflection and personal interpretation. Each line of code, similar to a brushstroke on a canvas, embodies a unique narrative: sometimes constrained by the rigidity of the rules, sometimes transcending them, and always carrying a narrative of personal expression.
As programmers, do we find our craft encapsulated within logical boundaries, resembling a modern Da Vinci? Or are we like wall painters, meticulously adhered to the templates laid out before us? The canvas is vast, the code is deep, and its narrative is imbued with nuances waiting to be discovered. The question is not merely a reflection on the essence of programming, but a deeper immersion into what constitutes art in the modern digital era.