It is a potential debate among software developers whether is coding an art or not. It may sound a bit odd or maybe it is not a concern for many of us. However, (as a person who is highly involved into the music) I have a tendency to see coding not as an ordinary job or an ordinary ability; to me, coding should also be considered as an art. In order to have a better explanation for this subject matter, first we need to define the boundaries of the concept of the art.
According to Wikipedia, art is “a diverse range of human activities in creating visual, auditory or performing artifacts (artworks), expressing the author’s imaginative, conceptual idea, or technical skill, intended to be appreciated for their beauty or emotional power.” * This broad definition is highly engaged with the concepts of idea and skill, on the other hand it is also hand to hand with the concept of emotional impact and the sense of beauty. Maybe, this is the main reason of the debate since software development definitely covers some aspects of art while some other aspects are far from the issue.
In the Ancient Greece, any activity requiring a talent or experience was seen as art. That is, the scope of the term art was not limited to the activities focused on beauty and targeting people’s emotions. A mathematician, a priest, a musician, a carpenter, a tailor were considered as artists, for example. The main point was to solve human’s need with a specific talent and experience. In other words, definition of art for Ancient Greeks was also including the concept of craft.
After the Industrial Revolution, a new concept has been introduced in the area of manufacturing which is the mass production. Mass production is basically, producing large quantities of identical products. This process killed or changed many of the previous arts and crafts. Nevertheless, during the modern era, some of the prior arts were kept exempt from the mass production. Only the ones which are highly associated with expressing the human emotions and having eustatic meanings were seen as arts and the concept of fine arts was born.
However, the era which we are currently living in (generally defined as postmodern era) is different. To be precise, today the definition of the art is broader than the 19th or the beginning of 20th century; yet still we cannot assume anything requiring talent and experience as an art. There is a boundary between art or others even though it is a blurry one. For instance, an ordinary church built from concrete just for worshipping in an average suburb and the Notre-Dame Cathedral are definitely different although they solve similar problems and they both require experience and talent to build; what is more the problem is not only the size or budget. One is highly engaged with the aesthetics and targets human’s emotions while the other is mainly focused on functionality.
Talking about coding; can coding really be considered as an art? I have never heard a piece of code written to express beauty or targeting human’s emotions. Here, I am not talking about software developed those aim is something like “analysing emotions” or “measuring the sense of beauty”. Maybe, we should comprehend the term “beauty” as “aesthetics” on the definition we gave at the beginning of this text. It is a fact that, even though the main motive is not the sense of beauty, still coding has some criteria to be considered as “good code”. Although they are not part of an aesthetic process you need to follow some rules, principles and norms or a canon to evaluate. This is debatable but to me, all these criteria make coding an art since in addition to the functionality, you also need to satisfy particular norms, various written coding standards and notations.
Any art requires an artist and it is the coder in our case. Just like any art, every good software requires a passionate coder who has a capacity, knowledge and also feels self satisfaction from coding. Passion is an important aspect which should be discussed. Have you ever seen a famous musician barely doing it? Every musician, including non-famous or amateurs are passionately engaged with what they are doing. Even professionalism does not affect this fact. Developers who are involved into software business but don’t like coding somehow find another way around during their career; they do not continue as coders too much. (I didn’t want to offend project managers, sorry) On the other hand, each successful project is conducted by at least one passionate developer. All in all, maybe not the sense of beauty but having the concept of “good code”, then the requirement to follow certain set of rules and criteria in addition to functionality, and lastly requirement of passion for doing all these make coding an art.
I am sure that it happens to almost all the developers: if you check your previous code, you don’t like it. You have some more suggestions to change it. Sometimes, it is a better or an optimized way of doing the same thing which is directly related to the functionality, yet sometimes you just want to make ineffective changes like renaming a variable, merging two lines into one etc. This means that, you had a progress with your skills and knowledge.
As we told about Notre-Dame Cathedral example, there should be a distinction between art and non-art. For coding, it may not be so clear. It may not be true in all cases, but we can get “being highly engaged with functionality” as a criteria to define the border between art and non-art. If you take the concept of “good code” into consideration and follow a certain set of rules, this code becomes closer to be an art. All of us have been involved into awful projects or have written really horrible code just to complete the task. On the other hand, a passionate developer has always have some code to be proud of.
To sum up, as software developers, we are involved in an artistic activity, at least to some extend. We need to have more respect to what we are currently doing and we need to treat our productions as pieces of art. We need to spend more of our attention to for perfection of the code. Loading an artistic meaning will not only motivate ourselves to what we are doing, this will also add more value and also increase the quality of what we are doing.
Suleyman Cabir Ciplak