People come to programming with many different, sometimes overlapping motivations. Some like the mathematical dimension, the beauty of elegant algorithms. Many like the satisfaction of solving a problem. Others think it good money with career prospects. In Hackers & Painters, Graham frames a view on those who like the hands-on art of programming, the same ones drawn to writing, painting and other arts. Programming may seem a pale cousin of the arts, compared to writing or painting, but there is an art to it. Graham calls these sorts hackers, for their need to bend, break or invent patterns in pursuit of their art.
In the popular press, hacking is associated with breaking into computers or creating viruses that damage them. “To the programmer, ‘hacker’ connotes mastery in the most literal sense: someone who can make a computer do what he wants — whether the computer wants to or not” (50). Novice programmers perceive languages to be quite different, while those with a little more experience claim they are all the same. But the hackers, the masters, are sensitive to the variations in their tools, and how they shape the work. Graham favours Lisp as his sketching language. I dabbled in Lisp years ago; I am persuaded to take another look.
I have psychology and library science degrees, not computer science. What I know about programming and computers I picked up on the fly. Turns out that many people come to programming accidentally. Good programming is not really science, says Graham. Hacking is doing, like art. Those who can do it often find themselves making some sort of living at it simply because of economics; it is much harder to make a living at painting. These people often do not fit comfortably in the corporate mold, but rather in small startups, where the lean environment and rewards for hard work are better suited to innovation.
Graham paints an invigorating portrait of hackers, though some of his notions completely missed my boat. Like many books on computers, some ideas already seem quaint, such as his discussions of ASPs and langauge issues around typing and garbage collection. Other ideas border on facile, such as his view that generating wealth in the modern world is all good because it is a function of hard work. No corruption in the modern world? He also believes that information technology decreases the gap between the rich and the poor. By its very nature, technology tends toward to centralized control by a small group. In any case, the book does have many good ideas, and I suppose hackers are likely to make as many mistakes as worthy breakthroughs.