Some comments on Paul Graham's latest essay:
I think he is right about the term "Computer Science", it is a misleading term for an agglomeration of activities. The greatest computer scientists: Church, Turing, Godel are all mathematicians. However, people trained in computer science have little to do with the tradition of the these great mathematicians.
Graham is too derisive about mathematical foundations of computing. He equates programmers understanding the theory of computation to painters understanding the chemistry of paint. This analogy is wrong. A more direct analogy to the chemistry of paint is the physical make up of computers. For all intents and purposes, we don't care to understand the physical processes that make computers work. The computer is assumed to be digital, operating in discrete states.
Moreover it is oversimplifying to make direct comparisons to the work of a programmer and the work of painter. Although a great deal may be shared in the creative process, there are great differences in the function of the art. Programming is a precise art form built on logical foundations. There is simply no notion of correctness in painting, where in programming correctness is vitally important.
Graham says "a good programming language should, like oil paint, make it easy to change your mind". What about water color painting? There is little room to change your mind in water color painting. Programs, by fact of being entered interactively, are changeable. Graham connects this to an argument for dynamic typing. Dynamic typing may or may not have merit, whether painting can give us the answer is another question entirely.
Graham call for empathy in programming is welcome.
Overall I think Graham overemphasizes hacking and code in talking about programming as an art. Somehow "hacking" does not conjure up images of an artful process. Programming is about ideas, precisely that is what ties us to all other forms of art. In mathematics or music composition, the symbols are but a representation for the real ideas mathematicians and composers work with. In contrast to Graham, I find myself more and more working out computational ideas in pen and paper. Code, if it is produced, is only the final expression of this process.