Hacker and Painters

This is a reprint of an article I wrote for Ping Wales (now sadly closed) back in Jan 2005 on Paul Graham's book "Hackers and Painters."

Hackers and Painters: Essays on the Art of Programming

O’ReillyISBN: 0596006624

There are plenty of coders in the world and in the mid 1990s, not a few of them tried their hands at creating a technology start-up company. The majority of those start-ups failed in due course - but one of them succeeded, and in doing so, became a part of dotcom legend. In 1998, Yahoo! paid $49 million for Viaweb Inc., a company whose market-leading Viaweb Store software and reporting tools powered the majority of all e-commerce sites then in existence. Not only is Viaweb Store thought to be the world's first web-based application, it was written using Lisp - one of the oldest programming languages still in relatively wide use.

Viaweb Store became Yahoo! Store which in turn was folded into Yahoo! Small Business Merchant Solutions. Paul Graham was at the centre of these developments when they swept through the tech sector; he was Viaweb's company president and one of three coders who developed Viaweb Store out of an attic loft in 1995.

Not content with programming alone, Graham also designs programming languages and is a prolific essayist. It's out of the latter pursuit that Hackers & Painters emerged early last year. The book is a collection of some 15 of his essays, covering an incredibly wide span of material. Among other things, Graham talks about his choices in creating a start-up, the effects of those choices and why it is that start-ups so often fail.

The answer is intrinsically tied in to the nature of coders, he says, and can be traced back to the American school system, where being smart just doesn't matter and popularity is the name of the game. It's only in adult life that Graham believes that the school nerds will discover they were playing an entirely different game, "a game much closer to the one played in the real world. Adults know this. It's hard to find successful adults now who don't claim to have been nerds in high school.” Graham is most at home talking about his chosen language: Lisp. Invented in 1958 merely as a means of processing lists, Lisp was a language recognised as good to learn because of what it taught you about coding, but not a language one would ever use in the real world.

Why not? Graham asked. If it really is that good, surely that’s the one to use. He cites many reasons why Lisp was critical to the success of his start-up, and why all technology choices are directly related to a company’s profit. Fashionable programming languages seem to be taking steps forwards, he feels: to 1958.

Graham does a good job of pre-empting the attitudes of coders less open-minded than himself. The various camps (at times, evangelical tribes) of language and platform are dissected very neatly and I found myself squirming at his viewpoint of my own particular camp.There is much detailing of the pros of Lisp and cons of other languages, and Java in particular comes in for a kicking. Graham feels not so much that it is intrinsically poor, but that it is at the end of a branch on the programming evolutionary tree. It is in defence of Java that so much negative feedback was directed to Graham, so much so that he wrote in a further essay, in response: “The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python.” If that won’t wake the trolls, nothing will – and you know he is only being diplomatic to insert Python for Lisp there. He goes on to say: “The thing about languages, though, is that they're not just standards. …a programming language isn't just a format. A programming language is a medium of expression.” Along with Graham's thoughts on Lisp itself, Hackers & Painters contains a lot of material about his experience as a coder coping with running a business. While much of what he discusses could only apply to the heady days of the dotcom bubble, there are some items of note which are as pertinent today.

One such topic is the idea of web applications. It is still difficult for people to envisage the web as somewhere that useful work can be done, and yet, Graham believes, the advantages for web-based over desktop software for a start-up company is more than significant: “You can do as much that Microsoft can't as they can do that you can't. And no one can stop you. You don't have to ask anyone's permission to develop Web-based applications. You don't have to do licensing deals, or get shelf space in retail stores, or grovel to have your application bundled with the OS. You can deliver software right to the browser, and no one can get between you and potential users without preventing them from browsing the Web.”

A considerable part of his writing could well be aimed at people who don’t code. I wonder if he would like to enlighten people who have to deal with coders in their work, and find it hard to relate to them. His advice for some such person given the job of managing a coder, for example: “Give up.” He expounds upon many myths about how coders think and work, drawing on his own experience and study of fine art; he studied painting at the Rhode Island School of Design and the Accademia di Belle Arti in Florence.

Parallels are drawn which many coders will take for granted, but it is interesting to see him noting several aspects of the industry which pander to the preconceptions of coders: [At Yahoo]… “Programmers were seen as technicians who translated the visions (if that is the word) of product managers into code.” Graham would rather see coders being treated like artists, with corresponding values and temperaments.

Although I wonder how many managers will read Hackers & Painters, I enjoy the idea of it - I can really picture the caricatured boss scratching his [pointy-haired head] (http://www.dilbert.com) and realising why those weird techie guys seem so resistant to his control.

The essays on design are far more relaxed. If Graham wrote the Lisp essays at the office, those on design must surely have come from a warm Sunday afternoon at home, where one is no doubt prompted to ponder such things as stove design.“The typical stove has four burners arranged in a square, and a dial to control each," Graham writes.

"How do you arrange the dials? The simplest answer is to put them in a row. But this is a simple answer to the wrong question. The dials are for humans to use, and if you put them in a row, the unlucky human will have to stop and think each time about which dial matches which burner. Better to arrange the dials in a square like the burners.”

I felt his writing on design was subject to the same reworking and refactoring he would apply to code, leaving us with an essence of Graham the man, over Graham the hacker. It is something he feels is most relevant to coders because we are all makers - just like artists, musicians or carpenters. This form of wealth, often undervalued in today’s content-commoditising society, is often more sustaining than its monetary counterpart.

Hackers & Painters is an unusual book. The issues at the centre of code, design and wealth have rarely been brought together in such lucid form. Reading it, I could immediately apply some of his more concrete ideas to my work; the more abstract inspired me. Who knows: I may even learn Lisp.