In his keynote speech at the useR! meeting John Chambers of Statistics research at Bell Labs (one of the founders of the S System, which subsequently gave rise to the R project) asked the question what is programing? As it turns out it is surprisingly difficult to answer this seemingly simple question.
He went on asking,
Is it science, art, engineering, or a craft?
According to John,
It is not really science. It may be devoted to furthering the ends of science but science is about learning and programing is about creating.
Is it art? In programing one has a lot if choices, just like in art, According to Donald Knuth, when asked if programming is art, “…sort of – we have choices and aesthetics, but software does have to work, too.“
Is it engineering? This is closer, making things that work. In programming we have more choices than in engineering, however, programing is not just “applied sciences”.
Is it a craft? Maybe a new kind of craft – a “higher craft“
In the end, programing is a new kind of creative activity that does not fit well into existing categories.
I like the higher craft metaphor, it makes me feel like a modern day Gandalf.