Knauss on Paul Graham's "Great Hackers"

Greg Knauss doesn’t have a weblog of his own, so I asked if I could post his rebuttal to Paul Graham’s Great Hackers essay. Greg writes:

“Hello, my name is Paul Graham. I have a bunch of opinions and prejudices, and I’ll now present them as fact: Python is better than Java, Linux is better than Windows, quiet is better than noise, one big problem is better than a thousand tiny ones, hackers are better than normal people. If you disagree with me, then you are obviously not a super hacker, and are instead some sad little monkey, banging on a keyboard.”

Jesus. s/hacker/self-satisfied prima donna/g.

You know what a hacker is? It’s someone who enjoys solving problems. Great hackers do it elegantly. Good hackers do it at all. How they do it is irrelevant, and it certainly has nothing to do with what language they choose or what OS they run or if they’re politically correct or not. To claim otherwise is arrogant, narrow-minded foolishness.

The fact that I’m learning C# and Windows.Forms does not make me any less of a hacker. In fact, it makes me more of one, because I’m able to solve a problem I couldn’t with all the Python and Linux in the world. Oh, but I forgot: hackers only solve the problems that interest them, if they’re presented in the right way and in the right environment. Because hackers are special.

Joshua pointed out that while it may seem that every smart person I know is using open-source tools, it’s a product of observational bias. Open-source programmers hang out with other open-source programmers. I don’t know many Windows applications developers, so I’ve never met a Windows super-genius. But they exist, and to say they don’t is a form of technophobic racism.


    So, Stewart, seriously: Is that the standard to be considered a hacker? Or to criticize the thinking of a hacker?

    I have no doubt that Paul Graham is better than me. He’s smarter, has better ideas, produces more (and more elegant) code, is more successful. Judging from the picture on his site, he’s even better looking.

    But we’re not talking about me. We’re talking about the great mass of programmers who use tools different from what Graham favors. I share most of his prejudices — LAMP, quiet, un-PC — and it’s awfully nice to have someone so smart validate my prejudices. But that doesn’t make them any less prejudices or any more facts.

    Anybody can take anechdotal evidence from a small, self-selecting sample and find results that comfort them. But that doesn’t change the fact that it’s bad science, sloppy thinking and poor hackery.

    I respect the vast majority of the work that Graham has done. But this essasy is so wrong is in so many fundamental ways, that to call it anything other than crap is to do a disservice to the entire idea of “hacker.”

    I did agree with Graham’s opinions on the difficulty of working in noisy cubicle farms, though I have no idea how the situation is in any way unique to hackers.

    You’re all imbeciles!

    The problem is that nobody’s defined “hacker” or “great”. Yes, yes, Graham is pandering. But as a decidedly non-great coder and someone who doesn’t even consider himself a hacker, *I* read his piece and read a very Spolsky-esque “respect your coders” message. The details and trappings are irrelevant, and indeed in the case of the Windows-coder slander, downright inaccurate. But the larger message of a good environment increasing coder productivity is the part that I think resounded with everyone.

    I keep thinking of writing a post (on my weblog!) about the schism between LAMP/scripter types and Windows/.NET and Java types, which are two almost entirely distinct development communities. (It shows up in technical distinctions like REST vs. SOAP and in larger cultural issues like contempt vs. respect for users.) Graham has conflated his fixation on the LAMP/scripting community with his larger message of demanding respect for coders, but that doesn’t negate the validity of the latter message.

    Sorry Greg – that was a little oblique (intended as a mock-Graham response).

    I too have a lot of respect for Graham, and though I am definitely not a hacker in the sense he means, I am more interested in Lisp for his ranting.

    However, I agree that this essay was a little silly, especially this part: “… blah blah blah. For example, Microsoft.”

    (Also, as someone who sits on the other side of the table, the complaints against product managers strike me as quite facile: he obviously has respect for Steve Jobs – does that make Jobs a hacker? Or is he still a products guy? If you left hackers to their own devices, the world would be filled with Perl scripts that difficult things or neato things that didn’t actually need doing.)

    So, how smart, detail-oriented and generally superior does a hacker like this essay-writing fellow have to be to make a simple print stylesheet to hide his navigation and have the text fill the sheet so as to not waste so much paper?

    Just wondering.

    Well, you know, CSS is for designers; you can’t expect a real hacker to even deign to notice it.

    I work in a primarily Java shop, and the programmers I work with are some of the smartest guys I’ve ever met. All of them are far more productive than the average programmer. What’s more, relatively few of them are stereotypical hacker types. They’re all well-rounded individuals with real social skills, families, and so on. None of them works late, because all of them know how to manage their time so they don’t have to, and because they have discovered that there are other things in life to enjoy besides coding.

    I must also question the wisdom of giving each programmer their own quiet office. People at certain places on the autistic spectrum (see wide-eyed WIRED stories on Asperger’s Syndrome) may need this. Others don’t. We have an open plan with our six programmers, one manager, our trainer, our IT guy, and me (tech writer) in the same room. There aren’t even cubicles, just desks, and they’re not even really desks, but Ikea tables. This arrangement is essential to collaboration and to staying informed about what people are doing, and since we can all see each other’s screens easily, there’s less inclination to goof off.

    Nobody here has any real trouble getting “in the zone” or staying there. If you require complete silence to do your work, maybe it is time to learn how to work in other conditions as well, since you won’t always be able to work in an environment that precisely accommodates your every quirk. This makes you more employable, which is generally considered to be a good thing. Sometimes things do get distracting here when there are three conversations going on at once, none of which involves me, but when that happens I just put on the headphones, crank up iTunes to drown out the jibber-jabber, and get back to work. As does everybody else.

    The company is not stupid. We may have Ikea tables for desks, but we get some nice perks too. They spend the money on the things that really matter. If I could have either my own office or free lunch every day, I’d definitely pick lunch, and I think most people would too. These are things that anyone, not just a stereotypical hacker, can appreciate and enjoy.

    The essay was good, the attacks on specific programm languages (or more specifically the people using them) wasn’t. I use Windows languages like Visual Basic, I use JavaScript in a browser, I use JSP/ Java, I use Python and like it, I use PHP, C, .NET, etc. Whatever tool comes along can be used for something great, and I’m more concerned about what my software is going to achieve then which language I programmed it in. I’d say a hacker will take whatever tool suits the job (and not only Python). Also, I found many non-brilliant people in the LAMP community as well — people who only care about whether or not the tool is open-source, but they don’t care about e.g. good software interface or design. I even heard one say it doesn’t matter this tool is bad, it’s open-source you can program and recompile it yourself! (Hmm, as opposed to taking a better one in the first place? This was a non-trivial program by the way and nothing to script in a week or so.)

    I haven’t seen much of Graham’s code. I do know that I (still) esteem Graham’s book “On Lisp” as the best book yet written on any programming topic. This is almost better than code as a demonstration of not only advanced hackishness, but the ability to bridge the gap between the hacker world and that other world which I’m told exists but must take on faith.

    Based on that, as soon as I learned of it, I bought and devoured Graham’s recent book of essays, half of which I’d already read on-line. Guess what: I found myself diagreeing with him in alot of places. But that’s healthy, I think. It’s a sort of call-him-up-and-invite-him-out-for-beers sort of disagreement, rather than a tear-him-a-new-asshole-in-a-forum-he’ll-never-read sort of disagreement.

    For the record: Paul Graham is better looking than me, which definately surprised the hell out of me. He’s not better looking than Stewart, though.

    Graham has several good points, which I think a lot of people are missing because they disagree with his technological comments.

    There are a combination of things that seem to lead Knauss to claim that Graham is describing something other than hackers. One is the noise issue. It’s not quiet which is the issue, so much as interruptions. Quiet is good; frequent interruptions are very bad for writing code, as you lose your train of thought. The poster above who mentioned throwing on a pair of headphones when there were too many conversations happening is, I think, a confirmation of this; the important this is to be able to tune out distractions and concentrate, rather than the number of decibels.

    Are all python users geniuses, or hackers? Does learning C# make you a non-hacker? No, obviously. However, if you look at the percentage of C# coders vs, say, python or ocaml or lisp ones, who are highly competent, I suspect the results would be interesting.

    I’ve seen Windows programs which strike me as the products of genius; I generally cannot see the code, but I can see when there’s a small app which runs quickly and smoothly and generally is pleasent to use; when it also solves a difficult problem and is written by one or very few people, I tend to assume it’s the work of hackers.

    There are below-average programmers in every significant environment. There are brilliant programmers who only use Windows. However, you find far less people in absolute terms who have no clue whatsoever with the less used technologies, obviously enough; I don’t have metrics, but I would expect a lower percentage of users to be below-industry-average or whatever similar metric for tools that are generally less hyped.

    Put more bluntly, people who claim to know only the most popular commercial environments tend to be incompetent. They tend to either be beginners, or lack a real interest. I’m sure there are exceptions, and there are very intelligent people who choose to write in these environments. This does not mitigate the fact that the majority of “Java and C/C++ programmers” can barely code.

    I fail to see why people take personal insult at this. No one is claiming that all C programmers, or all Java or C# programmers, are incompent; that is an obvious falsity. It’s possible to be willing to use Java and also be brilliant; Graham mentions one such person in his article.

    It’s dangerous to generalise about a group like hackers, but many of them are extremely busy. Not all problems are interesting to all people, and it makes sense to spend at least some of your time on something which interests you. I will further go out on a limb and say that it even makes sense to take environment into account. Knauss takes environment into account when he says that his (unspecified) problem can’t be solved on Python and Linux. Some tools are better suited for some applications than others (does anyone seriously disagree on this one?)

    A pervasive theme of Graham’s essays is that some coders are just far, far more productive than others; he believes in catering to this set, as they get most of the interesting stuff done. Some jobs can be done quite adequately by an average programmer; great. That’s generally not the focus of his essays.

    Graham never claims that hackers are “better” than “normal people.” He merely points out that they’re more productive than average programmers, by huge margins, and plays with various aspects of this in his essays, from how to design good tools to how to identify them.

    I think the controversy arises in that Graham actually compares the languages themselves, and states that the tools hackers voluntarily choose are likely to be better tools. Obviously, what is a better tool “in general” may not be for a specific application, as Knauss points out. Many people become highly sensitive to anything which might be contrued as criticism of their favorite tools. That does not necessarily make the criticism wrong. If I were to now put in specific examples of places where one tool is better than another, some people would attack this post on the basis of that alone; most likely a great number if I said anything controversial, or a small number of very vocal partisans if I happened to mention their favorite tool.

    It’s been my impression, reading his essays, that he welcomes disagreement; I have never communicated with him, so I do not know this for a fact. I disagree with some things he says; I also think he generally has several good points, and his essays have changed my mind on some matters.

    Most of Knauss’ reply to Graham’s essay is a barely-incoherent attack which doesn’t address a single point he made (with the exception of the second paragraph, on what a hacker is.) I don’t understand why Knauss is so upset; as he rightly points out, whether he’s using C# has no impact on whether he, personally, is a hacker. I refuse to speculate on his motivations for this rant.

    Well… I also disagree with Graham on being a ‘Hacker’. But I also tend to not regard asp-dot-net-forms-java-stuff as being just as ‘Hacker-ish’.

    Let me put it this way: Coding an application in Postscript has higher hack-value than doing it in Visual Basic. You with me?

    Hacking for me is all about making things I recognize do things I didn’t think was possible, or hadn’t thought about. (And making PC clusters do airline booking is pretty close, together with building the largest web search engine on cheap Linux boxes etc.)

    The thing with Microsoft end user stuff is that it’s more polished surface than substance. They constantly change their products according to the latest marketing fad. And the latest fancy languages, C# and Java, has both been launched with tons of marketing while being pretty boring and nothing new really.

    Paul Graham is not a hacker, he is a hack. He thinks the only good programmers come from MIT becuase he doesn’t know enough of them to realize most good hackers could care less about getting an a PhD in computer science. How many good CS Phd programers have you ever met? Probably none. I am sure there are some, but I have yet to meet one. The ones I have met and worked for, or had work for me, tend to be bogged down in theory instead of execution. Most analyze the structure of their code more then what they are actually building with it. This might explain why Mr Graham wrote a book on Lisp.

    To a hacker the language is important, but FAR less so then the program they are writing with it. He thinks he is a god because he built a web store in Lisp, at the right time and theorized about spam filters (his theories were hardly even imaginative). It’s the difference between knowing the path and walking the path. Mr Graham, knows it but I have yet to see any evidence he walks it. If he did, he wouldn’t be writing essays, or doing speeches, he would be creating something wonderful.

    He got rich from a simple program written at the right time. Grats to him (and thousands of others at the time). However, given this opportunity, a true hacker, would have started working on something wonderful and original. What is he doing? Oh right, revamping the only programming language he has ever really learned, Lisp. Just what the world needs. Does the man have no imagination? I would respected him more if he would attempt to solve a real problem. He loves MIT, why not solve one of MIT’s pet problems such as AI? Take it a step further or all the way if it can be done. How about invent something entirely new? How about instead of talking about great programming, actually DO SOME.

    It might be to late. Its kinda hard to take anything he says after that essay seriously. Insulting Java programmers without even knowing the language (read his other essays)? Geez, He’s not a hacker he is a bigot and a zealot. Get educated Mr Graham. For every Lisp hacker you find I am sure 20 exist in Java, who understand the art of programming just as well. Just because there are more Java programmers doesn’t mean what they do is any less elegant or sophisticated.

    Mr Graham, put brain in gear before engaging mouth. Predjudice is for the intellectually challenged and the uneducated. If you are a dumb ass, then there isn’t much you can do, otherwise try educating yourself. In the mean time, put the mouth in park about Java and anything else you feel like insulting without understanding.

Comments are closed.