The Art of Programming
Written 13 Jan 2004
Charles Miller presents a very convincing argument regarding the Art of Programming showing why the majority of programming is not engineering, nor is it a science. How fitting that he used the word Art in his title. Note some of the definitions for the word art. Expecially telling is this quote: Science is systematized knowledge . . . Art is knowledge made efficient by skill. --J. F. Genung
As Mr. Miller details, we have not learned enough about programming and software development for it to truly be a science, there are too many variables. One idea that has rattled in my head for a while is that we are moving too fast for the majority of development to become a science. This fast pace is mandated by commerce interests. Commercial interests all too often are only interested in one thing, well two things: there own interest and there own profit.
"Real" science and engineering takes time. Time to discern the principles and laws masked by anecdotes, results and seeming evidence. Time to fully understand the application of the laws and principles, and how such are affected by various scenarios.
Instead what we see too often is a group or company "discovers" methods that worked in some narrow applications and espouses them as the best way to develop. Or, even more typical, a language is developed that pushes or forces such methods upon the developers. A lot of time, effort and money is placed in advocating the methods/language, with the seeming goal of improving development everywhere when in reality such just want your money. If the method works fine, but why did it work? What made it efficient? Is it tested in different environments by different people? Are the principles and laws of the discovery discerned and applicable in different languages and scenarios?
Until concerted effort is put forth by the software developers to gain this understanding, we will continue flailing from method to method, cast about by the waves (interests) of the (commercial) sea.