Science/engineering or art/craft – Does it matter at all?

There is that old debate:

Is it a science?
Can software design and programming be considered a full-fledged engineering discipline based on –of course– an established science?

Assuming we all are able to tell the difference between science and pseudo-science, the answer is: No.


For a science to exist, the sine qua non condition that must be fulfilled is the presence of at least one theory that helps us to explain and to predict the observed facts (phenomena) in the universe (here and in the dwarf planet Pluto).

Each theory consists of a system of corroborated laws.

Each law consists of a set of constant, general and necessary relationships between phenomena (observed facts).

All these building blocks are not present yet in the current state of affairs with computer programming, by far.

Engineering is applied science, if there is no science there is no engineering.

Ok then...

Is it an art?
Can software design and programming be considered an art?

This is a harder question than the previous one because art is a much broader term applicable to human expression of creativity and imagination. Whereas science and its method deal with reliable knowledge about what there is in the universe, art deals with whatever thing the human mind is able to convey as a coherent and identifiable idea.

So a safe answer is: Maybe.

If computer programming can just be seen as a demonstration of skills then it is more like martial arts and is subject of the same traits.

I recently read another term for computer programming: "a new-fangled alchemy", this brief article was interesting:
Is Programming an Art? by Stanley B. Lippman

Does it matter at all?
Well, that is an easy one and the answer is: Yes, of course.

What guide us in the sustainable use of people, processes, resources and technology in our industry?
How do you manage something that you don’t know?

A couple of quotes came to my mind:

"If you call a tail a leg, how many legs has a dog? Five? No, calling a tail a leg don't make it a leg" -Abraham Lincoln

"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former" -Albert Einstein

In addition, here is another related article:

The Art in Computer Programming by Andrew Hunt and David Thomas

Comments (2)

  1. BlakeHandler says:

    I’m a Microsoft consultant, but also a trained Jazz musician.  At Cal Arts in Valencia California I had a teacher that explained that "Art is the field of creation — Science is the field of recreation"

    The purpose of science is to redo an experiment and always get the same results. Contrary to popular belief: Exception disproves the rule.

    The purpose of art is to create without rules — to make something new. Science and rules can only make something "old"

    So . . . according to my teacher, each field is different in its approach — and you need to master Art if you wish to "create"

  2. marcod says:

    Thank you for your comment, it is quite interesting.

    Computer programming has a lot of creativity involved, that is for sure.

Skip to main content