To the Editors:
I always look forward to Brian Hayes’s columns and I especially enjoyed "Cultures of Code" (January–February, Computing Science).
I took my first programming course in 1965 (MAD programming on an IBM 7090) and I am still hacking away. As an electrical engineer, my job was to solve engineering problems, and programming was just another tool in my box. But I have always enjoyed the “building things” aspect of programming, too.
I once had a friendly debate with a colleague about the definition of programming . I advocated a rather liberal definition: “configuring a computer to perform a desired function.” I suggested, as an example, that if you enter text and formulas on a spreadsheet to create an electronic Form 1040, then you have programmed a computer. My colleague disagreed, stating that this was merely running an application. Although I would have agreed with him if my example had been to use Excel to add a column of numbers, I would not concede the 1040 example.
Some comments near the end of Hayes’s column reminded me of this debate. Today we can create software for a variety of cultures without coding from scratch or, in some cases, without using a traditional programming language. We have learned to use layering, information hiding, domain engineering, and other tools to develop programming interfaces to fit the various cultures. But is it really programming? If I see my colleague again, we might resume the debate.
Warren Koontz, Professor Emeritus
Rochester Institute of Technology
Mr. Hayes responds:
I don’t know whether spreadsheeting should be considered programming, but I know that a spreadsheet is a rich medium for scientific computation. For example, it offers a very natural way of exploring cellular automata or simulating physical phenomena such as percolation and ferromagnetism.