Programmers are Artists

On October 9, 2012

artist : a person who practices or performs any of the creative arts, such as a sculptor, film-maker, actor, or dancer.
-Oxford Dictionary

Artists create. They believe in creating great stuff. Being an artist is to express yourself freely and confidently in your chosen field. This expression of inner talents and skills combined with intuition and hard work creates a masterpiece.

You can see such masterpieces in the works of great artists like Leonardo da Vinci, Michelangelo and writers like Shakespeare and Charles Dickens.

Great artists create the future and can see things happening before anyone else does. They are only limited, somewhat, by the tools and technology of their time.

Programmers are no different in this respect. Yes, programmers can be creative, intuitive and highly skilled in expressing themselves through their work. Great programmers are artists.

Their work may be done to make something simpler, solve a future problem, or make the consumers more productive.

Programmers, at least the good ones, believe in creating things that don't exist or things that don't work the way they are supposed to.

Artists represent themselves in their art in various forms:
A musician represents himself in his music; A dancer represents himself in his dance; A painter represents himself in his paintings; An actor represents himself in his acting.

A programmer represents himself in his code by coding beautifully. Code that's simple, elegant and easily understood. The code which flows in a rhythm from one point to another.

Good programmers write their code in a way which can be easily understood by other programmers. These programmers can see if a coder is an artist, just by looking at their code.

But, it's not just the code that makes a programmer artistic. It's the way they make the execution of the application as flawless as possible, just the way they had envisioned it in their mind.

The smoothness in the interface, the ease of use, the simplicity, and the robustness of the product. This might sound like a mix of two roles: the role of designer and the role of programmer.

The programmer has to think like a designer in this aspect. Only then can he execute the design, by programming efficiently and coming as close to perfection as possible.

Any great work of art gives the viewer a joy and appreciation for the artist. Similarly, a great software product is a work of art and it gives the users joy and appreciation for the people who made it.

This product can be anything: a website, a software application, a video game or a mobile application. The one thing that the user immediately notices is the way it makes their tasks easier and simple and the way all the elements of the interface work in sync with each other.

The same can be said about games. A great video game keeps the player immersed in hours and hours of game-play without even trying to do so. Have you ever wondered why?

Every art form requires an artist and the tools used by the artist.

A painter uses a brush, a canvas, and some colors to make a great piece of unforgettable art.

A write uses his pen, his notebook to create a masterpiece novel.

Just like that, a programmer uses the computer to create beautiful software. Beautiful in terms of execution and interaction.

In all the above cases the tools just act as a way of doing the task. Just because someone is skilled in using a tool doesn't make him a great artist.

An artist is made by his vision and the efforts that he takes to convert this vision into an actual piece of art which can be seen, understood, felt and appreciated by others.

The tools are merely there to support him in achieving his goal. No tool however advanced it may be, can ever replace the artist.

But an artist can replace the tools if he intends to. He can always learn different tools and skills to give fruit to his vision.

Good programmers also don't limit themselves with only one technology. If they think one programming language doesn't satisfy their need, they willingly learn another language that can fulfill this need.

They don't compromise on the value of the product.

Have you ever used a product and just fell instantly in love with it?
Great products show several marks of artistry. They have artistry written all over them.

Just to give you few examples of products, that I think were made by true artists:

Sony Walkman, Casio Digital Diaries(I still use one and it has been working perfectly since last 14 years), Apple products like the iPod and iPhone.

You only have to use and play with such products for few minutes to realize the effort and great thinking behind these products. It's a combination of several factors: great design, great quality build, great craftsmanship, great execution, great durability.

Some of the video games, that I have played, when programmers have shown some great artistic taste are Tetris, Super Mario Bros and Doom. All these games are the combination of great design and flawless programming which only true artists can do.

Why do you think that a game character jumps, turns and fights exactly as he is supposed to do?

Because the designer designed it? True. But wasn't the programmer equally responsible to understand this and implement it exactly as the designer intended it, in such a way that the end user never becomes aware of this designing and programming process.

All the processes that went into making such game, fades away. What remains is pure joy and a great experience that is much more than the price of the product. Instead, it provides a great value for the players time.

I can't put a price on the experience I had playing such games as a kid. Was it just the price of the gaming machine and the game? Absolutely not. It was much more than that.

Great Designers create the very soul of the product. They can actually feel the product even before it's built. But, to make this design into reality, the programmer also has to work with same vision, understanding the soul of the product.

This can't be done merely by a programmer who knows about the syntaxes and semantics of the language. It's done only by programmers with great artistic taste.

Only then can the final product come as close to perfection as possible and when this happens, the experience is just outstanding.

share this on : twitter | facebook | google+