/Glover and Business Perspectives27 Jan 2008 08:36 pm
Is programming an art or a science?
I had the pleasure of linking up with Rich Sharpe of Enerjy Software at CodeMash a fews ago where he asked me this direct question:
Is programming an art or a science?
Yeah, tough question, eh? Certainly made me squirm! So what do you think?

January 27th, 2008 at 9:00 pm
[…] Martin Brazeau wrote an interesting post today onHere’s a quick excerpt […]
January 28th, 2008 at 8:04 am
I would say both
A science because programming (well mostly) is based on logic, automata, and so on…
An art because i think it requires creativity to tackle and solve a problem in a way that maybe nobody thought about.
Now you can think , depending on the context of what you are actually programming, it will more based more on science than art or vice versa. Imagine someone who is responsible of a UI design, it requires still programming skills but tons of creativity (graphical one) , whereas for instance one has to develop a new messaging protocol , you would rely mostly on logic.
A good programmer is someone who is open enough to consider any solution as potentially good, creative enough so to solve a problem in other ways than the usual one, and logic enough so that what s/he is actually writing make sense in order to solve a problem.
February 12th, 2008 at 12:40 pm
If forced to pick one, I would say art. Science deals with proposing a hypothesis and finding better and better ways to disprove the hypothesis to arrive at a generally accepted theory. The thought processes of scientists and programmers are not even similar.
Art relies heavily on creativity and finding news ways to view familiar things, concepts, etc. It could be argued that this is indeed what programmers do.
However, the better cubby hole to assign software development is engineering. I know this is likely to draw some criticism, but true engineers apply technology to solve problems. In other words, they take the findings of scientists and combine a degree of creativity to solve problems in appropriate ways. Similarly, programmers use the results of the scientific process and creatively apply the right technology to the right problem.