Thirty years ago, Donald Knuth began writing a seven-volume series, The Art of Computer Programming. The first three volumes stand at 2,200 pages, suggesting the full seven might amount to more than 5,000 pages. People who advocate programming as art point to the aesthetic aspects of software development and argue that science does not allow for such inspiration and creative freedom. People who advocate programming as science point to the high error rates of many programs and argue that such low reliability is intolerable-creative freedom be damned. Both these views are incomplete and both ask the wrong question.
Software development is art.
It is science. It is craft, archeology, fire fighting, sociology, and a host of other pursuits. It is amateurish in some quarters, quasi-professional in others. It is as many different things as there are different people programming. Engineering vs. Science With only about 40 percent of software developers holding computer science degrees and practically none holding degrees in software engineering, we shouldn't be surprised to find people confused about the difference between software engineering and computer science.