Hackers and Painters: Big Ideas from the Computer Age
review by Tung Wai Yip, July 2005
 |
| |
| Paul Graham's Hackers and Painters 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. |
| |