||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Hacking, programming languages, software devlopment
Title: Hackers & Painters
Author: Paul Graham
Verdict: Interesting enough but doesn't match the hype
We all know never to judge a book by its cover, but given the gushing cover quotes that adorn the jacket of Paul Graham's 'Hackers and Painters' I was expecting to find a set of essays that would shine through with brilliance and erudition. After all, according to blurb the guy's a genius, really smart, erudite etc. Given that kind of billing it's probably inevitable that the contents doesn't live up to the hype.
The essays cover a range of topics, from programming language design to software development to economics to the popularity of nerds in school. It's a eclectic mix of subjects, which is one of the more attractive features of the book. If the intention is to shed some light on the hacker mindset then looking beyond purely technical issues is essential. Unfortunately the content isn't especially impressive or startlingly original and at times is irritatingly smug and self-satisfied.
The chapter on why nerds are unpopular at school states what is blindingly obvious - if you force kids to be somewhere they don't want to be then they react badly. The description of the incredibly brutal hierarchies that high school kids impose on themselves is fine, we've all seen it before (even if it's only on film and TV for those of us outside the States) and this sheds no new light on the matter. The discussion of teenage angst (Graham doesn't actually use the phrase) is pretty facile and doesn't mention research which shows that there are strong biological factors at play, nor does he mention sex and sexual attractiveness which are also huge factors in teenage life.
The sections on economics, particularly the economics of software development, seem rooted in Graham's own very specific experiences in developing ViaWeb (which was bought by Yahoo). He makes the assumption that experiences rooted in one specific time and place can generalise everywhere. The dot com bubble burst a long time ago, why would anyone imagine that what happened then applies to other times and places? He also makes the claim that wealth differentials are good for a society and that this is somehow a dangerous observation to make. This simply isn't so. The whole ideology of 'trickle down' economics, which is the current orthodoxy, is based on this same premise.
In many respects the most interesting chapters are those devoted to programming languages. Here again we find that much of what Graham says is based on his own experience. While this is a book of essays rather than a fully researched account of software development, it still comes as something of a surprise to find it so firmly rooted in anecdote. He places great emphasis on what could loosely be termed 'agile' programming techniques - the productive hacker has to be fast, light and armed with the right tools. That means no UML, no heavy-weight methodologies, ruthlessly refactoring and literally hacking the best solutions to difficult problems.
So far so good, but chief among the hackers tools is the programming language. Here he suggests that a hacker needs to use a dynamically-typed language that makes rapid application development easy. And, as a Lisp-hacker, he scores Lisp most highly. In particular he dislikes Java intensely, which he sees as a language controlled by suits and useful only for drones working in big companies. It's not, he affirms, a language popular with hackers. It's also a language that will go nowhere, a biological dead-end kept on life-support through enterprise inertia and the accumulated momentum of millions of drones working their cubicles. I suppose we should just forget about C#, BeanShell, Groovy, Jython and the other languages and tools that either build on the language or the platform …
This review has been pretty negative and given all the positive reviews of the book it feels as though we're going against the grain. But if someone makes a decidedly partisan stand on some issues, which Graham does with relish, then it should be no surprise that people are apt to disagree strongly. While the book is interesting and readable, it certainly isn't the innovative and original work that seemed to be promised on the cover.
To be honest, 'Facts and Fallacies of Software Engineering' by Robert Glass was a much better read and had more interesting things to say than anything in Grahams book.