First Edition May 2004
by Paul Graham
ISBN: ISBN: 0-596-00662-4
|
Paul Graham's Hackers and Painters and is series of articles pondering what is happening in the computing age. Driving much of the innovation
is a tribe of smart people often labeled as hackers. What do hackers do? How are they different? Why do they break rules? What makes a good
hacker? Paul's ideas are always provocative and heretical, but they are no less insightful and thoroughly entertaining.
|
The book opens with a disturbing chapter - Why nerds are unpopular. Being smart is a gift. But in American high schools, this can be a liability.
There smart young people are often called nerds, harassed by peers and led a miserable adolescent life. Paul account for nerds' life in high
school, theorizing the social dynamic and suggested some possible remedies. More than just a hacker and a painter, multi-talented Paul also
shows his aptitude as an anthropologist. Even I have not attended American high school or experienced agitation to that degree, I have no
problem to empathize. He has simply painted a picture of human nature and regrettably also its dark side.
|
We usually think the analytical programmers and the creative painters are two different kinds of people. Do they have anything in common? A
lot he said. He dislikes the disciplined view of the trade like 'software engineering'. Not even 'computer science' is the right characterization.
Hackers are 'makers'. They design 'beautiful' things. He eloquently drew many parallels between the two crafts. Good works are simple and timeless.
People learn by doing, by imitating other good works. The work often involves sketching, refinement and redesigning. What appears to be good finished
work often conceal hours of labor and many rewrites behind.
|
While software engineering's perspective using scientific, quantitative measures is the prevalent view of the trade, Paul gives a refreshingly
alternative perspective emphasizing its creative, non-linear aspect. Many of us recognize good design is beyond mere numbers but don't quite
know how to articulate the concept. Paul shows us a great way to appreciate good design.
|
Programming language to a programmer is as acrylic paint to a painter. It is the tool of the trade and you have to use the best tool for great work.
Paul is especially passionate about the choice and design of programming languages. While he give high score to dynamic languages like python,
it is clear that his top choice is LISP, the venerable language introduced since the 60s. Here he make string argument that its high level
abstraction and the macro capability is still unmatched by other procedural languages that dominant the industry today. Just as Eric Raymond
has introduced me to Python, I plan to seriously study the language he recommends, if only it broadens my understanding on computer languages.
|
The chapter on the hundred-year language is an illuminating one. First of all most people would not have even considered such topic.
Computing technologies change so fast nobody know what will come in 10 years, let alone 100 years. You have to credit Paul for his boldness just
to bring up this theme. What's more, it is not some wild predictions but intelligent explorations on what comes before and where the future leads.
He uses many imaginative analogies, like associating Java as a Neanderthal language - an evolutionary dead-end. He did not elaborate but already
a very rich picture of evolution and natural selection would come into mind. He encourages us to rethink data structure as optimizations, a premature
ones possibly, and to think in more fundamental but much more wasteful primitives. No string, just list; no array but hash tables; no numbers but
lists!. It is shocking to think how inefficient a program can be if it is implemented that way. But this is mean to be mental exercises. Once you
have stretched you mind, you will find it can reach places you do not know before.
|
To summarize this book is a fun and insightful reading. For nerds, it gives a little bit of ego boost. But more importantly, Paul is a great mentor.
He encourages us to nurture our creativity and unorthodox thinking. He believes being smart matters, that hackers can take on big guys and make a
difference.
|