Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Paul Graham On 'Great Hackers'

simoniker posted more than 10 years ago | from the great-scott dept.

Programming 620

dcgrigsby writes "Always interesting, if not unbiased, Paul Graham has published a new article on 'Great Hackers', discussing why Perl and Python are apparently better than Java, on why Microsoft developers get offices, and a host of other sure-to-be-controversial stuff."

cancel ×


Sorry! There are no comments related to the filter you selected.


Anonymous Coward | more than 10 years ago | (#9827273)

What the FUCK kind of color-scheme do you have going in your new-and-useless IT section? WHAT THE FUCKING HELL? Beige on white background is NOT a sane combination! Just because the colors remind you of the creamy swirls of Michael Simm's white jizz oozing out of your anus mixed with your light brown shit bits DOESN'T MEAN it should be forced upon the rest of us. Fix your fucking "503 Service Unavailable" website NOW, BITCH! Besides, 80% of this website can be classified as IT, so why have a separate section for it? How about Oh wait, that's entirely redundant.

Hi (-1, Troll)

Anonymous Coward | more than 10 years ago | (#9827322)

yr ghei plz fix tks


Anonymous Coward | more than 10 years ago | (#9827355)

Did I rob you of your precious Frist Prost? Extract the fecal mass from my hindside with your oral cavity you same-sex buttocks endearor.

frist ppsot (-1, Troll)

Anonymous Coward | more than 10 years ago | (#9827274)


Perl Rocks! (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#9827277)

Wow, first post!

Re:Perl Rocks! (-1, Troll)

Anonymous Coward | more than 10 years ago | (#9827318)


Interesting insights... (3, Insightful)

Fux the Penguin (724045) | more than 10 years ago | (#9827282)

Interesting insights.

I wonder, how does one become a great hacker? How do you make yourself a great hacker? I'm not sure it's possible...I mean, I know you can do a lot of things to make yourself dumb, but what can you do to make yourself smart?

I guess a good part of it comes from working on what inspires you, and what makes you happy. In general, I find that it's very difficult to make very smart people do things they don't want to do.

I suppose that in order to accomplish something important, it has to be important to you. It could be that you love it. Obviously, if you can keep alive the zest for programming you had when you were young, then you're bound to do well. If your current profession is making you senile, then you're probably not going to keep that hacker spark going.

I think the real issue must be inquisitiveness. I find that good hackers are very curious about the world around them. Ultimately, that must be the answer. To be a good hacker, you must have a genuine thirst for knowledge, and a desire to improve things for those around you. Sounds good to me.

Eric Raymond (5, Insightful)

EmbeddedJanitor (597831) | more than 10 years ago | (#9827451)

ESR will tell you that you must be like him. He says one should play a musical instrument, enjoy (and preferably write) science fiction. He does not mention having a gun fetish, but I guess this helps...

Now I would classify myself as a hacker, but cant play a musical instrument (CD player isn't a musical instrument right?) and sci-fi gives me a softie. Dig guns though.

IMHO a good/great hacker must be prepared to go where he wants to with confidence. Don't just take on everyone else's mindset (if you do what the other 6 billion people are doing you're not going to do anything worthwhile). In short, scratch your own itch.

Article text (in case of slashdotting) (-1, Redundant)

Anonymous Coward | more than 10 years ago | (#9827284)

A few months ago I finished a new book, and in reviews I keep noticing words like "provocative'' and "controversial.'' To say nothing of "idiotic.''

I didn't mean to make the book controversial. Think about your breathing. I was trying to make it efficient. I didn't want to waste people's time telling them things they already knew. It's more efficient just to give them the diffs. But I suppose that's bound to yield an alarming book.


There's no controversy about which idea is most controversial: the suggestion that variation in wealth might not be as big a problem as we think.

I didn't say in the book that variation in wealth was in itself a good thing. I said in some situations it might be a sign of good things. A throbbing headache is not a good thing, but it can be a sign of a good thing-- for example, that you're recovering consciousness after being hit on the head.

Variation in wealth can be a sign of variation in productivity. (In a society of one, they're identical.) And that is almost certainly a good thing: if your society has no variation in productivity, it's probably not because everyone is Thomas Edison, but because you have no Thomas Edisons.

In a low-tech society you don't see much variation in productivity. If you have a tribe of nomads collecting sticks for a fire, how much more productive is the best stick gatherer going to be than the worst? A factor of two? Whereas when you hand people a complex tool like a computer, the variation in what they can do with it is enormous.

That's not a new idea. Fred Brooks wrote about it in 1974, and the study he quoted was published in 1968. But I think he underestimated the variation between programmers. He wrote about productivity in lines of code: the best programmers can solve a given problem in a tenth the time. But what if the problem isn't given? In programming, as in many fields, the hard part isn't solving problems, but deciding what problems to solve. Imagination is hard to measure, but in practice it dominates the kind of productivity that's measured in lines of code.

Productivity varies in any field, but there are few in which it varies so much. The variation between programmers is so great that it becomes a difference in kind. I don't think this is something intrinsic to programming, though. In every field, technology magnifies differences in productivity. I think what's happening in programming is just that we have a lot of technological leverage. But in every field the lever is getting longer, so the variation we see is something that more and more fields will see as time goes on. And the success of companies, and countries, will depend increasingly on how they deal with it.

If variation in productivity increases with technology, then the contribution of the most productive individuals will not only be disproportionately large, but will actually grow with time. When you reach the point where 90% of a group's output is created by 1% of its members, you lose big if something (whether Viking raids, or central planning) drags their productivity down to the average.

If we want to get the most out of them, we need to understand these especially productive people. What motivates them? What do they need to do their jobs? How do you recognize them? How do you get them to come and work for you? And then of course there's the question, how do you become one?

More than Money

I know a handful of super-hackers, so I sat down and thought about what they have in common. Their defining quality is probably that they really love to program. Ordinary programmers write code to pay the bills. Great hackers think of it as something they do for fun, and which they're delighted to find people will pay them for.

Great programmers are sometimes said to be indifferent to money. This isn't quite true. It is true that all they really care about is doing interesting work. But if you make enough money, you get to work on whatever you want, and for that reason hackers are attracted by the idea of making really large amounts of money. But as long as they still have to show up for work every day, they care more about what they do there than how much they get paid for it.

Economically, this is a fact of the greatest importance, because it means you don't have to pay great hackers anything like what they're worth. A great programmer might be ten or a hundred times as productive as an ordinary one, but he'll consider himself lucky to get paid three times as much. As I'll explain later, this is partly because great hackers don't know how good they are. But it's also because money is not the main thing they want.

What do hackers want? Like all craftsmen, hackers like good tools. In fact, that's an understatement. Good hackers find it unbearable to use bad tools. They'll simply refuse to work on projects with the wrong infrastructure.

At a startup I once worked for, one of the things pinned up on our bulletin board was an ad from IBM. It was a picture of an AS400, and the headline read, I think, "hackers despise it.'' [1]

When you decide what infrastructure to use for a project, you're not just making a technical decision. You're also making a social decision, and this may be the more important of the two. For example, if your company wants to write some software, it might seem a prudent choice to write it in Java. But when you choose a language, you're also choosing a community. 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. [2] And the quality of your hackers probably matters more than the language you choose. Though, frankly, the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages.

Business types prefer the most popular languages because they view languages as standards. They don't want to bet the company on Betamax. The thing about languages, though, is that they're not just standards. If you have to move bits over a network, by all means use TCP/IP. But a programming language isn't just a format. A programming language is a medium of expression.

I've read that Java has just overtaken Cobol as the most popular language. As a standard, you couldn't wish for more. But as a medium of expression, you could do a lot better. Of all the great programmers I can think of, I know of only one who would voluntarily program in Java. And of all the great programmers I can think of who don't work for Sun, on Java, I know of zero.

Great hackers also generally insist on using open source software. Not just because it's better, but because it gives them more control. Good hackers insist on control. This is part of what makes them good hackers: when something's broken, they need to fix it. You want them to feel this way about the software they're writing for you. You shouldn't be surprised when they feel the same way about the operating system.

A couple years ago a venture capitalist friend told me about a new startup he was involved with. It sounded promising. But the next time I talked to him, he said they'd decided to build their software on Windows NT, and had just hired a very experienced NT developer to be their chief technical officer. When I heard this, I thought, these guys are doomed. One, the CTO couldn't be a first rate hacker, because to become an eminent NT developer he would have had to use NT voluntarily, multiple times, and I couldn't imagine a great hacker doing that; and two, even if he was good, he'd have a hard time hiring anyone good to work for him if the project had to be built on NT. [3]

The Final Frontier

After software, the most important tool to a hacker is probably his office. Big companies think the function of office space is to express rank. But hackers use their offices for more than that: they use their office as a place to think in. And if you're a technology company, their thoughts are your product. So making hackers work in a noisy, distracting environment is like having a paint factory where the air is full of soot.

The cartoon strip Dilbert has a lot to say about cubicles, and with good reason. All the hackers I know despise them. The mere prospect of being interrupted is enough to prevent hackers from working on hard problems. If you want to get real work done in an office with cubicles, you have two options: work at home, or come in early or late or on a weekend, when no one else is there. Don't companies realize this is a sign that something is broken? An office environment is supposed to be something you work in, not something you work despite.

Companies like Cisco are proud that everyone there has a cubicle, even the CEO. But they're not so advanced as they think; obviously they still view office space as a badge of rank. Note too that Cisco is famous for doing very little product development in house. They get new technology by buying the startups that created it-- where presumably the hackers did have somewhere quiet to work.

One big company that understands what hackers need is Microsoft. I once saw a recruiting ad for Microsoft with a big picture of a door. Work for us, the premise was, and we'll give you a place to work where you can actually get work done. And you know, Microsoft is remarkable among big companies in that they are able to develop software in house. Not well, perhaps, but well enough.

If companies want hackers to be productive, they should look at what they do at home. At home, hackers can arrange things themselves so they can get the most done. And when they work at home, hackers don't work in noisy, open spaces; they work rooms with doors. They work in cosy, neighborhoody places with people around and somewhere to walk when they need to mull something over, instead of in glass boxes set in acres of parking lots. They have a sofa they can take a nap on when they feel tired, instead of sitting in a coma at their desk, pretending to work. There's no crew of people with vacuum cleaners that roars through every evening during the prime hacking hours. There are no meetings or, God forbid, corporate retreats or team-building exercises. And when you look at what they're doing on that computer, you'll find it reinforces what I said earlier about tools. They may have to use Java and Windows at work, but at home, where they can choose for themselves, you're more likely to find them using Perl and Linux.

Indeed, these statistics about Cobol or Java being the most popular language can be misleading. What we ought to look at, if we want to know what tools are best, is what hackers choose when they can choose freely-- that is, in projects of their own. When you ask that question, you find that open source operating systems already have a dominant market share, and the number one language is probably Perl.


Along with good tools, hackers want interesting projects. What makes a project interesting? Well, obviously overtly sexy applications like stealth planes or special effects software would be interesting to work on. But any application can be interesting if it poses novel technical challenges. So it's hard to predict which problems hackers will like, because some become interesting only when the people working on them discover a new kind of solution. Before ITA (who wrote the software inside Orbitz), the people working on airline fare searches probably thought it was one of the most boring applications imaginable. But ITA made it interesting by redefining the problem in a more ambitious way.

I think the same thing happened at Google. When Google was founded, the conventional wisdom among the so-called portals was that search was boring and unimportant. But the guys at Google didn't think search was boring, and that's why they do it so well.

This is an area where managers can make a difference. Like a parent saying to a child, I bet you can't clean up your whole room in ten minutes, a good manager can sometimes redefine a problem as a more interesting one. Steve Jobs seems to be particularly good at this, in part simply by having high standards. There were a lot of small, inexpensive computers before the Mac. He redefined the problem as: make one that's beautiful. And that probably drove the developers harder than any carrot or stick could.

They certainly delivered. When the Mac first appeared, you didn't even have to turn it on to know it would be good; you could tell from the case. A few weeks ago I was walking along the street in Cambridge, and in someone's trash I saw what appeared to be a Mac carrying case. I looked inside, and there was a Mac SE. I carried it home and plugged it in, and it booted. The happy Macintosh face, and then the finder. My God, it was so simple. It was just like ... Google.

Hackers like to work for people with high standards. But it's not enough just to be exacting. You have to insist on the right things. Which usually means that you have to be a hacker yourself. I've seen occasional articles about how to manage programmers. Really there should be two articles: one about what to do if you are yourself a programmer, and one about what to do if you're not. And the second could probably be condensed into two words: give up.

The problem is not so much the day to day management. Really good hackers are practically self-managing. The problem is, if you're not a hacker, you can't tell who the good hackers are. A similar problem explains why American cars are so ugly. I call it the design paradox. You might think that you could make your products beautiful just by hiring a great designer to design them. But if you yourself don't have good taste, how are you going to recognize a good designer? By definition you can't tell from his portfolio. And you can't go by the awards he's won or the jobs he's had, because in design, as in most fields, those tend to be driven by fashion and schmoozing, with actual ability a distant third. There's no way around it: you can't manage a process intended to produce beautiful things without knowing what beautiful is. American cars are ugly because American car companies are run by people with bad taste.

Many people in this country think of taste as something elusive, or even frivolous. It is neither. To drive design, a manager must be the most demanding user of a company's products. And if you have really good taste, you can, as Steve Jobs does, make satisfying you the kind of problem that good people like to work on.

Nasty Little Problems

It's pretty easy to say what kinds of problems are not interesting: those where instead of solving a few big, clear, problems, you have to solve a lot of nasty little ones. One of the worst kinds of projects is writing an interface to a piece of software that's full of bugs. Another is when you have to customize something for an individual client's complex and ill-defined needs. To hackers these kinds of projects are the death of a thousand cuts.

The distinguishing feature of nasty little problems is that you don't learn anything from them. Writing a compiler is interesting because it teaches you what a compiler is. But writing an interface to a buggy piece of software doesn't teach you anything, because the bugs are random. So it's not just fastidiousness that makes good hackers avoid nasty little problems. It's more a question of self-preservation. Working on nasty little problems makes you stupid. Good hackers avoid it for the same reason models avoid cheeseburgers.

(Incidentally, I think this is what people mean when they talk about the "meaning of life." On the face of it, this seems an odd idea. Life isn't an expression; how could it have meaning? But it can have a quality that feels a lot like meaning. In a project like a compiler, you have to solve a lot of problems, but the problems all fall into a pattern, as in a signal. Whereas when the problems you have to solve are random, they seem like noise. )

Of course some problems inherently have this character. And because of supply and demand, they pay especially well. So a company that found a way to get great hackers to work on tedious problems would be very successful. How would you do it?

One place this happens is in startups. At our startup we had Robert Morris working as a system administrator. That's like having the Rolling Stones play at a bar mitzvah. You can't hire that kind of talent. But people will do any amount of drudgery for companies of which they're the founders. [4]

Bigger companies solve the problem by partitioning the company. They get smart people to work for them by establishing a separate R&D department where employees don't have to work directly on customers' nasty little problems. [5] In this model, the research department functions like a mine. They produce new ideas; maybe the rest of the company will be able to use them.

You may not have to go to this extreme. Bottom-up programming suggests another way to partition the company: have the smart people work as toolmakers. If your company makes software to do x, have one group that builds tools for writing software of that type, and another that uses these tools to write the applications. This way you might be able to get smart people to write 99% of your code, but still keep them almost as insulated from users as they would be in a traditional research department. The toolmakers would have users, but they'd only be the company's own developers. [6]

If Microsoft used this approach, their software wouldn't be so full of security holes, because the less smart people writing the actual applications wouldn't be doing low-level stuff like allocating memory. Instead of writing Word directly in C, they'd be plugging together big Lego blocks of Word-language. (Duplo, I believe, is the technical term.)


Along with interesting problems, what good hackers like is other good hackers. Great hackers tend to clump together-- sometimes spectacularly so, as at Xerox Parc. So you won't attract good hackers in linear proportion to how good an environment you create for them. The tendency to clump means it's more like the square of the environment. So it's winner take all. At any given time, there are only about ten or twenty places where hackers most want to work, and if you aren't one of them, you won't just have fewer great hackers, you'll have zero.

Having great hackers is not, by itself, enough to make a company successful. It works well for Google and ITA, which are two of the hot spots right now, but it didn't help Thinking Machines or Xerox. Sun had a good run for a while, but their business model is a down elevator. In that situation, even the best hackers can't save you.

I think, though, that all other things being equal, a company that can attract great hackers will have a huge advantage. There are people who would disagree with this. When we were making the rounds of venture capital firms in the 1990s, several told us that software companies didn't win by writing great software, but through brand, and dominating channels, and doing the right deals.

They really seemed to believe this, and I think I know why. I think what a lot of VCs are looking for, at least unconsciously, is the next Microsoft. And of course if Microsoft is your model, you shouldn't be looking for companies that hope to win by writing great software. But VCs are mistaken to look for the next Microsoft, because no startup can be the next Microsoft unless some other company is prepared to bend over at just the right moment and be the next IBM.

It's a mistake to use Microsoft as a model, because their whole culture derives from that one lucky break. Microsoft is a bad data point. If you throw them out, you find that good products do tend to win in the market. What VCs should be looking for is the next Apple, or the next Google.

I think Bill Gates knows this. What worries him about Google is not the power of their brand, but the fact that they have better hackers. [7]


So who are the great hackers? How do you know when you meet one? That turns out to be very hard. Even hackers can't tell. I'm pretty sure now that my friend Trevor Blackwell is a great hacker. You may have read on Slashdot how he made his own Segway. The remarkable thing about this project was that he wrote all the software in one day (in Python, incidentally). For Trevor, that's par for the course. But when I first met him, I thought he was a complete idiot. He was standing in Robert Morris's office babbling at him about something or other, and I remember standing behind him making frantic gestures at Robert to shoo this nut out of his office so we could go to lunch. Robert says he misjudged Trevor at first too. Apparently when Robert first met him, Trevor had just begun a new scheme that involved writing down everything about every aspect of his life on a stack of index cards, which he carried with him everywhere. He'd also just arrived from Canada, and had a strong Canadian accent and a mullet.

The problem is compounded by the fact that hackers, despite their reputation for social obliviousness, sometimes put a good deal of effort into seeming smart. When I was in grad school I used to hang around the MIT AI Lab occasionally. It was kind of intimidating at first. Everyone there spoke so fast. But after a while I learned the trick of speaking fast. You don't have to think any faster; just use twice as many words to say everything.

With this amount of noise in the signal, it's hard to tell good hackers when you meet them. I can't tell, even now. You also can't tell from their resumes. It seems like the only way to judge a hacker is to work with him on something.

And this is the reason that high-tech areas only happen around universities. The active ingredient here is not so much the professors as the students. Startups grow up around universities because universities bring together promising young people and make them work on the same projects. The smart ones learn who the other smart ones are, and together they cook up new projects of their own.

Because you can't tell a great hacker except by working with him, hackers themselves can't tell how good they are. This is true to a degree in most fields. I've found that people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent. The people I've met who do great work rarely think that they're doing great work. They generally feel that they're stupid and lazy, that their brain only works properly one day out of ten, and that it's only a matter of time until they're found out.

But it's particularly hard for hackers to know how good they are, because it's hard to compare their work. This is easier in most other fields. In the hundred meters, you know in 10 seconds who's fastest. Even in math there seems to be a general consensus about which problems are hard to solve, and what constitutes a good solution. But hacking is like writing. Who can say which of two novels is better? Certainly not the authors.

With hackers, at least, other hackers can tell. That's because, unlike novelists, hackers collaborate on projects. When you get to hit a few difficult problems over the net at someone, you learn pretty quickly how hard they hit them back. But hackers can't watch themselves at work. So if you ask a great hacker how good he is, he's almost certain to reply, I don't know. He's not just being modest. He really doesn't know.

And none of us know, except about people we've actually worked with. Which puts us in a weird situation: we don't know who our heroes should be. The hackers who become famous tend to become famous by random accidents of PR. Occasionally I need to give an example of a great hacker, and I never know who to use. The first names that come to mind always tend to be people I know personally, but it seems lame to use them. So, I think, maybe I should say Richard Stallman, or Linus Torvalds, or Alan Kay, or someone famous like that. But I have no idea if these guys are great hackers. I've never worked with them on anything.

If there is a Michael Jordan of hacking, no one knows, including him.


Finally, the question the hackers have all been wondering about: how do you become a great hacker? I don't know if it's possible to make yourself into one. But it's certainly possible to do things that make you stupid, and if you can make yourself stupid, you can probably make yourself smart too.

The key to being a good hacker may be to work on what you like. When I think about the great hackers I know, one thing they have in common is the extreme difficulty of making them work on anything they don't want to. I don't know if this is cause or effect; it may be both.

To do something well you have to love it. So to the extent you can preserve hacking as something you love, you're likely to do it well. Try to keep the sense of wonder you had about programming at age 14. If you're worried that your current job is rotting your brain, it probably is.

The best hackers tend to be smart, of course, but that's true in a lot of fields. Is there some quality that's unique to hackers? I asked some friends, and the number one thing they mentioned was curiosity. I'd always supposed that all smart people were curious; that curiosity was simply the first derivative of knowledge. But apparently hackers are particularly curious, especially about how things work. That makes sense, because programs are in effect giant descriptions of how things work.

Several friends mentioned hackers' ability to concentrate-- their ability, as one put it, to "tune out everything outside their own heads.'' I've certainly noticed this. And I've heard several hackers say that after drinking even half a beer they can't program at all. So maybe hacking does require some special ability to focus. Perhaps great hackers can load a large amount of context into their head, so that when they look at a line of code, they see not just that line but the whole program around it. John McPhee wrote that Bill Bradley's success as a basketball player was due partly to his extraordinary peripheral vision. "Perfect'' eyesight means about 47 degrees of vertical peripheral vision. Bill Bradley had 70; he could see the basket when he was looking at the floor. Maybe great hackers have some similar inborn ability. (I cheat by using a very dense language, which shrinks the court.)

This could explain the disconnect over cubicles. Maybe the people in charge of facilities, not having any concentration to shatter, have no idea that working in a cubicle feels to a hacker like having one's brain in a blender. (Whereas Bill, if the rumors of autism are true, knows all too well.)

One difference I've noticed between great hackers and smart people in general is that hackers are more politically incorrect. To the extent there is a secret handshake among good hackers, it's when they know one another well enough to express opinions that would get them stoned to death by the general public. And I can see why political incorrectness would be a useful quality in programming. Programs are very complex and, at least in the hands of good programmers, very fluid. In such situations it's helpful to have a habit of questioning assumptions.

Can you cultivate these qualities? I don't know. But you can at least not repress them. So here is my best shot at a recipe. If it is possible to make yourself into a great hacker, the way to do it may be to make the following deal with yourself: you never have to work on boring projects (unless your family will starve otherwise), and in return, you'll never allow yourself to do a half-assed job. All the great hackers I know seem to have made that deal, though perhaps none of them had any choice in the matter.


[1] In fairness, I have to say that IBM makes decent hardware. I wrote this on an IBM laptop.

[2] When Google advertises Java programming jobs, they cleverly require Python experience.

[3] They did turn out to be doomed. They shut down a few months later.

[4] Einstein at one point worked designing refrigerators. (He had equity.)

[5] It's hard to say exactly what constitutes research in the computer world, but as a first approximation, it's software that doesn't have users.

I don't think it's publication that makes the best hackers want to work in research departments. I think it's mainly not having to have a three hour meeting with a product manager about problems integrating the Korean version of Word 13.27 with the talking paperclip.

[6] Something similar has been happening for a long time in the construction industry. When you had a house built a couple hundred years ago, the local builders built everything in it. But increasingly what builders do is assemble components designed and manufactured by someone else. This has, like the arrival of desktop publishing, given people the freedom to experiment in disastrous ways, but it is certainly more efficient.

[7] Google is much more dangerous to Microsoft than Netscape was. Probably more dangerous than any other company has ever been. Not least because they're determined to fight. On their job listing page, they say that one of their "core values'' is "Don't be evil.'' In a company selling soybean oil or mining equipment, such a statement would merely be eccentric. But I think all of us in the computer world recognize who that is a declaration of war on.

Thanks to Jessica Livingston, Robert Morris, and Sarah Harlin for reading earlier versions of this talk.

Re:Article text (in case of slashdotting) (-1, Troll)

beee (98582) | more than 10 years ago | (#9827332)

Wow, you must be desperate for karma, you karmawhore!

Re:Article text (in case of slashdotting) (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#9827446)

Yup Anonymous Coward could *really* do with karma. Idiot.

Re:Article text (in case of slashdotting) (-1, Offtopic)

citog (206365) | more than 10 years ago | (#9827481)

Or maybe you're just desperate to slag somebody off? Hint: He posted AC - not much karma value in that.

Yeah? (-1, Troll)

Anonymous Coward | more than 10 years ago | (#9827289)


OT: Los Alamos's missing disks NEVER EXISTED! (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#9827294)

Remember the recent incident at LANL with the missing disks and the work being halted [] and the employees getting suspended [] ?

Well, apparently, the disks never existed. Somebody doing a project thought he would need 4 disks, and so put the paperwork through for clearance to create 4 disks, but he only ended up needing 2 disks. So, when the inventory check went through, the paperwork indicated that 2 disks were missing, even though they never existed.

This news hasn't hit the press yet, but I got it from a trusted source working on the investigation at LANL. (He works at the lab I work at as well)

Re:OT: Los Alamos's missing disks NEVER EXISTED! (0, Offtopic)

EzraTeneflin (755543) | more than 10 years ago | (#9827326)

Cool! But, doesn't this still mean that the accounting system is screwed up? (While acknowledging that the users are vindicated).

Re:OT: Los Alamos's missing disks NEVER EXISTED! (0)

Anonymous Coward | more than 10 years ago | (#9827357)

Yes, but everything that was done there (suspending employees, halting work) was a huge waste (of time AND taxpayer money). They're also making everyone (at LANL and here) take more training for all of this, even if we don't handle classified materials.

Re:OT: Los Alamos's missing disks NEVER EXISTED! (1)

Creepy Crawler (680178) | more than 10 years ago | (#9827419)

I can attest to the strictness of classified or top secret information.

My dad, and my friends dad were both in the navy as medium-high ranking officials. They both worked in comm, so much what they did was all classified or such. However the worst thing was reading manuals that were classified, as they had to count the pages before, write down what they read, and then re-count the pages with another officer to attest the fact.

It was better to remember what you neded to know than to do the mound of paperwork for using classified or TS materials.

Still, from what my dad told me (non-classified), I was seriously considering joining the navy/air force as communications.

All hackers are "great" (4, Insightful)

beee (98582) | more than 10 years ago | (#9827301)

Anyone who spends their time improving software is doing us all a favor... that's why my screensaver at work has always said: 'Hackers are great'.

It took some explaining to convince my boss that "hackers" wasn't a negative term, but since then I've received nothing but compliments from other geeks in the office.

Hackers are great!

Re:All hackers are "great" (2, Insightful)

the_argent (28326) | more than 10 years ago | (#9827334)

The best non-techical reference for a hacker to get the point across to people that I've used is the Wright bros. They used bicycles to build a fully flight capable aircraft. If they tried to do that today, they would get procecuted under some form of the DMCA. Thank god they weren't born under the current hampering of innovation that we face....

Re:All hackers are "great" (0)

Anonymous Coward | more than 10 years ago | (#9827460)

If they tried to do that today, they would get procecuted under some form of the DMCA.

Have you ever considered reading the DMCA, so you might have, you know, the slightest idea what it covers?

Re:All hackers are "great" (5, Informative)

kfg (145172) | more than 10 years ago | (#9827496)

The Wright Bros. sued nearly everyone in sight for patent infringement, which is the main reason the center of aero-technology moved from America to Europe in less than a decade.

By the time of WWI America was put in the position of having to license aeroplane and engine technologies from England and France.

I think you should find a better example.


Re:All hackers are "great" (4, Insightful)

Telex4 (265980) | more than 10 years ago | (#9827512)

One thing that Graham's essay didn't address directly, but that he alluded to, is not only how you can tell a Great Hacker from an ordinary Hacker, but how one can tell how good a Hacker is in general.

He mentioned several key qualities, namely: curiosity, concentration, and the desire for control and autonomy over tools and environment. He suggested that Great Hackers exhibit these qualities, but it's not as though you can judge how curious a person is, or rate their desire for autonomy (they might just be a jerk).

Perhaps the more important thing is that people have these qualities at all. In societies where people seek life quality in television, money and "quality time", we ought to all admire the Hacker's qualities and aspire to them (amongst others, of course). Companies ought not to worry too much about Great Hackers, if they are as rare as Graham suggests, but it's well worth considering how they can improve the lives of their employees and thereby improve their productivity.

Hackers don't just give us great software... they give us a successful model of how we can improve ourselves. Well, except in terms of exercise perhaps ;-)

Re:All hackers are "great" (1)

d474 (695126) | more than 10 years ago | (#9827613)

Kind of to your point, if anyone hasn't read "The Hacker Ethic" by Pekka Himanen, you should if your interested in the 'hacker' topic and explorations into its definitions.
It goes into great depth about not only what comprises a good 'hacker', but also how society in general could greatly benefit from employing this "hacker ethic" that contrasts greatly from the 'Protestant ethic' of which almost all corporations currently have as their modus operandi.

I'm going to have to go with "blowhard" (5, Insightful)

jbellis (142590) | more than 10 years ago | (#9827328)

From someone who has RTFA, Graham says,
What we ought to look at, if we want to know what tools are best, is what hackers choose when they can choose freely-- that is, in projects of their own. When you ask that question, you find that open source operating systems already have a dominant market share, and the number one language is probably Perl.
First of all, if you look at sourceforge stats, the top languages are C, C++, and Java, so if Graham is right and these languages are vastly less productive than Perl and Python (whose only common characteristic is they are both "scripting languages"), he's very wrong that open source programmers working on their own time are better judges of language power than others.

Second, and I'll probably be modded as troll for this, but all the programmers I know who like perl are sysadmin types who don't know better. Popularity isn't a much better measure of "goodness" in the open-source world than it is anywhere else.

Graham may make some good points but he's SO far out in left field on others that his credibility is shot as far as I'm concerned.

Re:I'm going to have to go with "blowhard" (5, Informative)

Junks Jerzey (54586) | more than 10 years ago | (#9827364)

Second, and I'll probably be modded as troll for this, but all the programmers I know who like perl are sysadmin types who don't know better. Popularity isn't a much better measure of "goodness" in the open-source world than it is anywhere else.

Nah, that's just the people you know. Perl, in my experience, tends to be used by people who write little programs to get things done quickly. And really, this covers a lot of sysadmins. But that's always been the secret of Perl: it's geared toward solving problems quickly. For example, in most languages you compile regular expressions and get back a handle, then you use the handle for searches. But in Perl the compiler takes care of this for you. You don't worry about it. You don't have to import an "re" library either. A good philosophy overall, even if the language isn't as pure and pristine in other ways.

Still, I read the article, and I can't help thinking that Graham has already written this same article a couple of times in different forms.

Re:I'm going to have to go with "blowhard" (2, Interesting)

jbellis (142590) | more than 10 years ago | (#9827386)

Yes, that's exactly my point. Perl is fine for "little programs." I have written many perl programs myself in the 100 line range; by the time you get to 500, though, perl is clearly a poor tool for the job. And however concise perl is, there are few really interesting programs you can write in under 500 lines.

Re:I'm going to have to go with "blowhard" (4, Insightful)

Coryoth (254751) | more than 10 years ago | (#9827562)

It's quite easy to write larger programs in perl, all you have to do is start the program with a different mentality. Write modules, use perl's OO (which is in some ways a kludge, but in other ways remarkably flexible and versatile). People who claim you can't write large programs in perl are simply failing to use the features of perl available for doing those sorts of things - they're trying to expand the same sort of programming they used for their 500 line program into something that works for a 5000 line program. Really, this is akin to trying to write a large C program by just putting everything in main() and then complaining C is no good for large programs.

For reference, I much prefer python to perl - I find it cleaner and easier. When pushed I like to use python combined with C for any heavy lifting (farm out any intensive routines to some C code that returns python objects).


Re:I'm going to have to go with "blowhard" (1)

SpaceLifeForm (228190) | more than 10 years ago | (#9827602)

Sorry, but perl is not necessarily a poor tool for a job just because it gets large.

In fact, I have written a command interpreter in perl that talked to another interpreter (sqlplus) in approximately 4000 lines of perl. My perl 'script' automated complete schema upgrades including constraints (amoungst other 'features') because I tire easily of the routine crap that hackers despise.

Re:I'm going to have to go with "blowhard" (1)

Profane MuthaFucka (574406) | more than 10 years ago | (#9827498)

Perl is a fine language, but the name is horrible. It should have been called "One-Shot". That would have made it a perfect language, as long as the programs written in it were only used for one shot.

Re:I'm going to have to go with "blowhard" (4, Insightful)

Anonymous Coward | more than 10 years ago | (#9827399)

LOL, since when is the number of projects on Sourceforge a good indicator of anything? 90% of them never make it to a release - sooo many projects are "pre-alpha" with near-empty homepages with comments like "project X will be the greatest Y ever built. Right now we're deciding how to start designing it."

Heck, for all I know, the high number of C, C++, and Java projects could just be an indicator that users of those languages tend to start things but never finish them.

And, by the way, the _main_ thing Perl and Python have is common isn't that they are scripting languages (a term that isn't very well defined anyway), but they are much higher level than, say, C or C++ (and to a lesser but still important degree Java). And _that's_ why they allow developers to be much more productive. If you have trouble understanding/believing this, then imagine explaining to an assembly programmer why you're so much more productive in C++ than assembly. Now, apply those same principles to something like Python, and you'll start to see the light.

Re:I'm going to have to go with "blowhard" (5, Insightful)

mike_scheck (512662) | more than 10 years ago | (#9827414)

As a sysadmin type who "doesn't know any better", I can tell you that I like PERL because its effective, and easy to write a short legible program that is far more powerful than a shell script. I work at a large company, and we have many cases where a perl script evolved into something much more complex than many C/Java programs in production, simply because when a small change needs to be made, almost anyone who has taken a previous programming language can make the changes or add features.

BTW, we have had Java programmers come in and give preso's on why Java is so great, and its pretty funny, they talk about a lot of things that perl has, but they don't realize it. Oh, we can create "objects and manipulate them", or "we can reuse our code". Crazy me, I've been typing all those perl modules by hand and throwing them away when I was done with them!

Re:I'm going to have to go with "blowhard" (0)

Anonymous Coward | more than 10 years ago | (#9827458)


I'd like to hire you to write me a distributed, enterprise-level business system in perl [and have it not suck horribly!].

Re:I'm going to have to go with "blowhard" (5, Insightful)

JerkBoB (7130) | more than 10 years ago | (#9827459)

Second, and I'll probably be modded as troll for this, but all the programmers I know who like perl are sysadmin types who don't know better.

Well, I'm a 'sysadmin type', and Perl lets me get my job done with a minimum of fuss. I have lots of one-off tasks that would be tedious to do by hand, and shell scripting is just annoying. But I've also written a whole ISP provisioning system with Perl, and tied it into our company's proprietary billing system. If I'd been doing it with C or Java it would have taken me a lot longer and definitely wouldn't have been as stable as quickly as it was.

Is it possible for me to program in C or Java? Sure. I had CS classes. But for me, Perl is the right tool for most of my jobs. People like you who look down your noses at a 'scripting language for sysadmin types' are typically the sort of people whose messes I have to clean up because they have just enough knowledge to demand root on their workstation so they can screw things up.

You haven't taken the time to appreciate how Perl can be used in a sane manner to create stable, maintainable codebases and applications. That's fine, but it doesn't invalidate or devalue what the rest of us are doing with it.

Re:I'm going to have to go with "blowhard" (1)

tcopeland (32225) | more than 10 years ago | (#9827475)

> if you look at sourceforge stats

Yup, but remember, there are other homes out there that sort of dilute the SF numbers - i.e., RubyForge [] and LuaForge [] .

Re:I'm going to have to go with "blowhard" (1)

Lovebug2000 (195893) | more than 10 years ago | (#9827494)

If you'll notice, the two languages he goes on about are scripting languages, basically the VB of linux (I'm sorry portage, I don't really mean that as an insult). So what does a hacker do to hack up small programs for personal use? The easiest and fastest tool there is.

However, those needs aren't a companies needs. Writing graphics intensive programs in Perl is probably not a good idea, and writing a text parser in C probably isn't. As for java, it's one of the primary languages for easy interface with databases. And most companies are founded around data (held in databases) so of course something as robust and supported as Java is going to be used.

He's right about a lot of the social problems in how hackers are currently dealt with, though. The worst thing you can do to a good one is bug the crap out of him to the point that he can't get his train of thought started, much less followed through.

Best for databases (1)

lamber45 (658956) | more than 10 years ago | (#9827633)

As for java, it's one of the primary languages for easy interface with databases

perl is great for databases, too; look into the DBI:: [] classes some time. The thing that makes Java useful is the commercial toolkits that easily build GUI forms, JavaBeans, etc.; however, the main interface that big companies need to their database is either their website or a simple locked-down interface to a transactional backend. PHP and ASP easily compete with JSP for the first, and a perl program running in an SSH instance might be the best environment for new development of the other. (However, I don't have a production system to back that claim up.)

Then you don't know the right programmers (2, Insightful)

Anonymous Coward | more than 10 years ago | (#9827507)

Spend some time somewhere like Perl Monks [] and you'll find out that there are a lot of competent Perl programmers who aren't sysadmin types. Or go and look at CPAN [] to see the variety of different kinds of software that are available in the Perl world.

Furthermore I'd like to point out that Graham made a claim about the behaviour of hackers, not open source programmers. Most of the people who contribute to Sourceforge would not, in Graham's opinion, deserve the compliment of being called hackers. Therefore their aggregate choices are irrelevant.

Disclaimer: I'm [] a fairly well-known Perl programmer.

Re:I'm going to have to go with "blowhard" (1)

Bull999999 (652264) | more than 10 years ago | (#9827530)

It's about right tools for the job. Sure, you can kill that fly with a .45, but why not use a fly swatter? Quicker and less messy for a such a small task.

Re:I'm going to have to go with "blowhard" (2, Insightful)

photon317 (208409) | more than 10 years ago | (#9827550)

I'm going to have to disagree. You're confusing "open source hackers in general" with "Great Hackers", which is what he was describing. The two terms are not interchangable. For every 1000 crappy programmers who were never meant to be, there's 100 decent programmers, and there's 10 open-sourcy hacker guys are pretty damn cool (they make up your sourceforce demographic), and there's 1 Great Hacker.

And yeah, these great hackers, oddly enough, tend to have a lot of overlap with those sysadmin-y perl-y type people.

read more closely (0)

Anonymous Coward | more than 10 years ago | (#9827599)

You said:

...he's very wrong that open source programmers working on their own time are better judges of language power than others.

He said: what hackers choose when they can choose freely-- that is, in projects of their own.

There's a difference. (Emphasis added.)

/. controversial? (-1, Offtopic)

ScytheBlade1 (772156) | more than 10 years ago | (#9827329)

Wow, slashdot controversial? I never would have imagined such a thing...

(sarcasm, mind you)

sure-to-be-controversial stuff? (-1, Flamebait)

Turn-X Alphonse (789240) | more than 10 years ago | (#9827333)


If it isn't then it's fine... if it is then we'll tie him up and make him read slashdot posts repeating forever...

You forgot (0, Troll)

Anonymous Coward | more than 10 years ago | (#9827336)

It is GNU/Great Hackers.

Why are Paul Graham's web pages width-constrained? (-1, Offtopic)

mellon (7048) | more than 10 years ago | (#9827341)

Paul's a really smart guy. I enjoy his writing, and I always read it. But it feels like reading text on an 80-column screen written by someone on an Atari 800. When you resize the screen, the text doesn't get wider. There's a huge whitespace gap to the right of the text.

This probably seems somewhat irrelevant, but I'm saying it here because I'm hoping that Paul or someone who knows him will notice and fix it - it's a shame to have this writing presented in such a difficult-to-read fashion.

Good article, by the way. I don't entirely agree with what's being said here, but I think it's an excellent tangent to a core idea the circumference of which one might better grasp, having read it.

Re:Why are Paul Graham's web pages width-constrain (0)

Anonymous Coward | more than 10 years ago | (#9827400)

>> it feels like reading text on an 80-column screen written by someone on an Atari 800.

It's for all the faggots using netscape 2 and lynx, which apparently is the cool thing to do on linux.

Re:Why are Paul Graham's web pages width-constrain (1)

Burdell (228580) | more than 10 years ago | (#9827403)

Unless you had an add-on (or the hack from Antic IIRC that used a 4 column wide font), the Atari 800 only had 40 column output.

Re:Why are Paul Graham's web pages width-constrain (2, Interesting)

pben (22734) | more than 10 years ago | (#9827422)

You ever notice that magazines, printed on paper, have several narrow columns instead of one wide one? The eye can read a narrow column quicker and with less strain than a wide column. Web pages don't often do several columns, due to the scrolling problem but a narrow column still reads quicker. Your way is slower and harder on the eyes.

Good design is good design because it helps the user get his task done quickly. One of the points he brought out in the article.

Re:Why are Paul Graham's web pages width-constrain (0)

Anonymous Coward | more than 10 years ago | (#9827552)

You ever notice that books, printed on paper, have one wide column?

It's self-evident that "the eye can read a narrow column quicker" -- because there's less information there. That does not mean, however, that you can process large amounts of information more quickly if it is formatted in several narrow columns.

The reason magazines and newspapers use narrow columns is so that they have more flexibility to route around the ads and pictures. Novels generally don't have this problem, so they don't bother.

Re:Why are Paul Graham's web pages width-constrain (1)

bruthasj (175228) | more than 10 years ago | (#9827515)

So, is Claudio Destro from Milan, Italy [] just an AstroTurf(TM) or a devout follower?

Re:Why are Paul Graham's web pages width-constrain (1)

sridharinfinity (801107) | more than 10 years ago | (#9827557)

Probably he had dual monitors configured perfectly and broken his second monitor at some point of time, then after wondering how to re-configure it to use the single monitor.

Java (5, Insightful)

kaffiene (38781) | more than 10 years ago | (#9827366)

Is suited to people who simply want to write large bodies of maintainable code. It's not intended for small hacks, nor is it intended for being close-to-the-metal.

The idea that one must automatically be a crap programmer because one likes Java is an egotistical and obnoxious point of view. I happen to like Python and C and C++ as well as Java, and I use all of those on occassion, but Java is no less a suitable and appropriate language to use for some tasks as any of those other languages.

I'm sorry, but Graham's dismissive attitude towards Java is evidence of extreme arrogance.

Re:Java (1)

AbbyNormal (216235) | more than 10 years ago | (#9827434)

You're completely right. They are simply the tools to get the job done right. You don't need an assembly plant to make a key, nor would you use a weedwacker to mow a farm. I use Perl regularly for small automated/scripting tasks, and either (GASP) VB or C# for other larger scale projects that require to be well engineered.

Re:Java (5, Insightful)

daveinthesky (608820) | more than 10 years ago | (#9827455)

Herd mentality.

Java has nothing about it that makes it any more maintainable than any other language.

LISP, Python and Perl do have language _features_ that make it much more powerful to good programmers. Closures, anonymous functions. LISP has macros. Imagine java or C/etc without recursion. That's what Java is. A language without closures, macros and lambda. It's missing stuff!

Re:Java (1)

pherthyl (445706) | more than 10 years ago | (#9827544)

Gotta love that kind of response. Now read the following very very closely.

Advanced language features (Generics, closures, macros, etc etc), while nice to have sometimes, are almost irrelevant

Some missing language features will cost you a couple extra lines of code, its not gonna prevent you from getting your work done. So while they're great from a nerd standpoint, they're not crucial in real life.
Way way way WAY more important is what libraries are available for a certain language. Java (and VB and C# etc) has an expansive, nice client library that JUST WORKS. Just in the Java standard libraries I have so much more functionality than in the standard Perl or Python libraries and they are all coded in the same style.

Re:Java (2, Interesting)

kaffiene (38781) | more than 10 years ago | (#9827581)

Java has nothing about it that makes it any more maintainable than any other language.

Untrue. Checked execeptions and strong typing are two features that Java has over Python, for example, which aid maintainability.

Over languages like C and C++ you may add garbage collection, bounds checking, security constraints.

And anyway, Herd mentality??? What the hell kind of comment is that if not a continuation of the kind of language bigotry that I was posting about in the first place.

FYI LISP is one of my favourate languages (I've written several LISP interpretters for work in my time) and I agree that it's great. But that said, I still wouldn't go where you seem so keen to go and just disparage vast swathes of the developer landscape just because it's not *your* favourite language under discussion

Re:Java (0)

Anonymous Coward | more than 10 years ago | (#9827614)

with that attitude, i would guess (though i could be totally wrong) that you haven't written a sufficiently complex program to take advantage of java's promise of maintainability. it's frankly absurd to assert the equality of the maintainence cost of a million lines of well-written java with a million lines of well-written perl. i certainly know which program i'd rather debug.

i'm not part of any herd; i'm speaking from experience.

Re:Java (2, Interesting)

ansible (9585) | more than 10 years ago | (#9827464)

I have some severe problems with the design of Java. But I don't think that people who choose Java are automatically stupid or something.

It's all about the tools. How many times have I needed to write a program which does X, but there isn't a library for X in Python? And there are libraries for C and Java. (The situation with Python is continually improving, but still...)

I like Python much better than either of those, but unless I want to re-write the entire world, I've got to go where there is support. To where there are the building blocks I need.

At any rate, it is possible to write good, bug-free, and reasonably elegant code in just about any language. It is just that some languages/environments make that more difficult.

But that doesn't stop me from griping about Java or C. My current dream is to take a couple years off work, and write an entire operating system in a high-level language. Something where a Python VM is integrated into the kernel. And all the userland is written in that. All the daemons, libraries, everything. But with this whole work-for-a-living thing, this isn't going to happen anytime soon. :-(

Re:Java (1, Flamebait)

Jerf (17166) | more than 10 years ago | (#9827497)

I'm sorry, but Graham's dismissive attitude towards Java is evidence of extreme arrogance.

Extreme arrogance is also a characteristic of great hackers.

Or is it arrogance? Given the demonstrated and scientifically proven (repeatedly) wide variance between the top and the bottom programmers, well, think about what the claim "I'm ten times better than you" looks like to those on the bottom.

It looks like arrogance.

The claim is, nevertheless, true.

Having programmed in Java, Python, Perl, and a motley variety of other languages, I've got to say, if you are happy in Java, especially after having tasted Perl or Python (or Ruby or Ocaml or whatever)... no, you're not one of the great and yes, they will sound arrogant. But their claims, nonetheless, will be true.

(By "Java" I mean more-or-less straight Java. Load it up with Jython or AOP or Groovy and that's not really Java anymore.)

Re:Java (5, Insightful)

kaffiene (38781) | more than 10 years ago | (#9827626)

Java Python and Perl are simply NOT aimed at the same target. The things I would gladly write in Python or Perl I just wouldn't consider Java for.

Insisting that one and only one language is the true language is just silly.

Having programmed in Java, Python, Perl, and a motley variety of other languages, I've got to say, if you are happy in Java, especially after having tasted Perl or Python (or Ruby or Ocaml or whatever)... no, you're not one of the great and yes, they will sound arrogant. But their claims, nonetheless, will be true.

Uh huh....

Look, I'm a software engineer with 20 years experience. I'm no newbie by a long shot, and as much as I back myself and my skills, I would never say such a bullshit statement as "if you're happy with language X, then you can't be one of the great"

Your milage obviously varies

you are a fucking retard moron (-1, Troll)

Anonymous Coward | more than 10 years ago | (#9827627)

"I've got to say, if you are happy in Java, especially after having tasted Perl or Python (or Ruby or Ocaml or whatever)... no, you're not one of the great"

yikes, what a fucktard you are. Just because you are an arrgoant asshole doesn't mean your good. It just means your an arrogant asshole.

Perl is a language for hacks (and by hacks, I mean the proper meaning of the word, eg disorganized and poorly planned software).

Re:Java (4, Insightful)

be-fan (61476) | more than 10 years ago | (#9827521)

I'm sorry, but Graham's dismissive attitude towards Java is evidence of extreme arrogance.
Perhaps arrogance, but also perhaps frustration. To anybody familiar with a broad variety of languages, the ascendance of Java (and C#, which is Java + 1) is irritating at best. Here you have a language that finally managed to overcome the entrentched nature of C/C++, but is at best one step backwards for each step forwards. It's got shades of Smalltalk, but none of it's flexibility; shades of Self but none of it's innovation; shades of C++ but none of it's control. It's not particularly good at anything (but not particularly bad), nor is it a good all-rounder. Certainly, it's decades behind the state of the art compared to something like Lisp, or Smalltalk. The main reason Java got popular was hype, chance (the rise of network computing), and a giant class library that had pre-canned solutions for most things. Put simply, it was an example of worse technology winning out over better technology, for market reasons.

Re:Java (2, Insightful)

jjohnson (62583) | more than 10 years ago | (#9827574)

"Put simply, it was an example of worse technology winning out over better technology, for market reasons."

Why are market reasons invalid when determining the quality of technology? How is it that the use of technology in the real world, something market reasons influence very strongly, is less important than the theoretical virtues?

Re:Java (0)

Anonymous Coward | more than 10 years ago | (#9827558)

A great hacker by definition can use any language as his tool. He must not be a great hacker, if he can't use Java.

Re:Java (0)

Anonymous Coward | more than 10 years ago | (#9827573)

i agree. java is nice for hacking. it's an _entire virtual machine_ to play around in. how could that be a bad thing? i like writing ClassLoaders that do interesting things. i tried to write a ClassLoader that rewrote classes on the fly using javassist to effectively segment a single JVM into process spaces, but in the end it wasn't sufficiently powerful. oh well.

but now there's the 'isolate' thing, and i'm excited to see how isolates compare to processes, as they work at a much deeper level than i was able to achieve with classloaders. i actually asked one of the guys doing the j2se implementation about this at javaone, but he claimed they weren't trying to write a java os--but then was immediately countered by a j2me guy, who said he thought they were. uh-oh.

anyway, the whole bytecode manipulation area is very fertile ground for experimentation and, yes, hacking. in addition to what i stated above, bytecode hacking is the primary way in which most AOP implementations work. and it's also used by a number of experimental or niche programming languages implemented in Java, such as pnuts and groovy (check out groovy if java's verbose syntax turns you off). and i must mention javassist a second time, as it's just that cool.

Re:Java (4, Insightful)

Cyno (85911) | more than 10 years ago | (#9827588)

I agree. But the same can be said for Perl.

Re:Java (1)

KermodeBear (738243) | more than 10 years ago | (#9827591)

I agree 100%. Although a large majority of my coding is in one language, I have used many others; C, Perl, PHP, Python, Ruby, SML, Java, JavaScript (such as it is, ha ha). When asked which language I like the best, the answer is that it depends on the problem. Certain languages are better suited for certain problems. For example, if I'm doing a web-based application then I'm going to want to use PHP, not C++. If writing embedded software, then C over Perl. Something that has automatic cross-platform compatability, go for Java.

Something else that I have noticed; I don't know if it is just the programmer, but for the most part Perl code that I have had to update seems messy, difficult to maintain and in general difficult to deal with. A language like Java - as much as I really don't like coding in it - is easier to read and easier to maintain -in general-.

Overall I find it rude that one would instantly judge someone's programming skill and ability depending on what language they choose to use. There have been some decent applications written in Java, especially recently; Zend Studio, for example, is a pretty nice application and as some good features, PLUS unlike a lot of other Java applications I have seen it runs quite well.

Graham = Bozo the Clown on this one (1)

Arbogast_II (583768) | more than 10 years ago | (#9827624)

Obviously lots of great hackers write on Linux in things like Python and Perl. That's a no brainer. It is also obvious alot of great hackers work in Java. Slam dunk if you live in the real world. He also gets Bozo the Clown status for suggesting Windows is a sub par environment. Only a blind person could use Windows and see the hand of many awesome hackers.

Its slashdotted.. (0)

Anonymous Coward | more than 10 years ago | (#9827370)

Re:Its slashdotted.. (2, Informative)

yppiz (574466) | more than 10 years ago | (#9827437)

Much of the Internet Archive crawl and processing code, at one point, was perl scripts, GNU text utils, and custom C to deal with sockets and IO. This may still be true, but I haven't seen the Archive crawler in a few years.

--Pat /

creativity plays its part (3, Insightful)

highwaytohell (621667) | more than 10 years ago | (#9827374)

Did he mention that these Great Hackers have quote possibly some of the greatest creative minds in the world. Sure you have to know what your doing, but the ability to think outside yourself, see the bigger picture, is what makes these guys great. When you come across a problem that may seem impossible to get a work around for, these guys think and think, and they get their solution because they are able to see a myriad of different perspecvtives as a possible solution to a really tough problem. these guys are paid the big bucks because they do have that extra quality as well as being good hackers. i think thats what separates the good, from the great.

Re:creativity plays its part (5, Insightful)

Tirinal (667204) | more than 10 years ago | (#9827487)

Slashdot... where lifting something directly out of the article, making the punctuation worse, and asking if the original author mentioned it is modded +5 insightful.

Dear God, I'm beginning to see parallels between this place and our political system. I need a drink...

Re:creativity plays its part (0, Redundant)

Bull999999 (652264) | more than 10 years ago | (#9827543)

Just make a post that says "Bill Gates blows goats" and you too will get a +5 insightful my friend.

-1 Flamebait (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#9827377)


Great hackers use Perl and Python? (3, Interesting)

putaro (235078) | more than 10 years ago | (#9827421)

He knows an interesting set of people, considering that C didn't come up once. Is Linus Torvalds a great hacker? Apparently not because if he was he would have coded the kernel in Perl!!

Re:Great hackers use Perl and Python? (0)

Anonymous Coward | more than 10 years ago | (#9827490)

Is Linus Torvalds a great hacker?


Re:Great hackers use Perl and Python? (2, Interesting)

Jerf (17166) | more than 10 years ago | (#9827510)

Is Linus Torvalds a great hacker? Apparently not because if he was he would have coded the kernel in Perl!!

Linus is constrained by application domain.

As C goes, the kernel is much, much cooler than any piece of software that size has any right to be. Sounds like greatness to me, at least the sign of a great leader.

Re:Great hackers use Perl and Python? (3, Funny)

Amiga Lover (708890) | more than 10 years ago | (#9827535)

Apparently not because if he was he would have coded the kernel in Perl!!

I put forward to you... vmlinux.NET

Re:Great hackers use Perl and Python? (3, Insightful)

RedWizzard (192002) | more than 10 years ago | (#9827560)

Is Linus Torvalds a great hacker? Apparently not because if he was he would have coded the kernel in Perl!!
Don't be so obtuse. Perl is clearly not the best choice for a kernel, and nowhere in the article did it suggest using tools that are not fit for the job (in fact it specifically mentioned the importance of tools). Besides Linus has written a number of tools in Perl.

Re:Great hackers use Perl and Python? (1)

Colven (515018) | more than 10 years ago | (#9827630)

But, is Mr. Graham a coder? I know nothing about him (hence the question,) but that article gave me the impression that he doesn't spend a whole lot of time actually programming -- whether he's involved with it in general or not.

If he's anything more than a programming enthusiast, overseer, or labor drone; shame on him for not knowing more about Linus and for not mentioning C.... otherwise, what's the big deal?

Paul Graham has clearly jumped the shark (0, Flamebait)

BlackTriangle (581416) | more than 10 years ago | (#9827438)

He should just roll around in his millions and leave the rest of us alone. Java whips those other laughable languages around.

Canadian Mullets (2, Funny)

Anonymous Coward | more than 10 years ago | (#9827447)

I remember standing behind him [Trevor Blackwell] making frantic gestures at Robert to shoo this nut out of his office so we could go to lunch. Robert says he misjudged Trevor at first too. Apparently when Robert first met him, Trevor had just begun a new scheme that involved writing down everything about every aspect of his life on a stack of index cards, which he carried with him everywhere. He'd also just arrived from Canada, and had a strong Canadian accent and a mullet.

Thereby *really* standing out as an nutjob oddball.

I was thinking the article was good until... (1)

Luveno (575425) | more than 10 years ago | (#9827463)

... he got partisan on particular technologies (Java vs Python, NT vs OSS, etc).

Sure-fire way to blow your cred. Right tool for the job and all that.

Re:I was thinking the article was good until... (0)

Anonymous Coward | more than 10 years ago | (#9827563)

When was NT ever the right tool for the job?

"why Microsoft developers get offices..." (0)

Anonymous Coward | more than 10 years ago | (#9827495)

So the geeks working in the broom closet can have nightmares about having an office with a window facing a brick wall (no pun intended).

When he starts comparing languages... (5, Funny)

SnapShot (171582) | more than 10 years ago | (#9827505)

When he starts comparing languages or, to be more specific, makes the blanket statement that better hackers like Python over Perl I am reminded of the fact that the best hackers actually use OCAML and Objective-C.

"No they don't", you cry, "the best hackers user Assembly and Visual Basic".

"No, you're a fucking moron", someone else pipes up, "the best hackers use Pascal and COBOL."

"No, you are a fuckwit," a voice from the back of the croud screams, "Fortran and Algol are the languages of the best hackers".

"Quiet you fools," an elderly guru from the wings yells out, "I happen to know that the best hackers use Perl when they aren't dictating their programs to their secretaries to be outsourced to Taiwan to be compiled into Haskell"

"Shows what you know old man", a kid in the front row sneers, "the l33t hax0rs use Lisp and C++".

Well anyway, it looks like this might go on for a while, please enjoy the other comments while we try and work this out...

Re:When he starts comparing languages... (2, Funny)

Bull999999 (652264) | more than 10 years ago | (#9827566)

You left out binary on punch cards. Now that's "L33T HaX0rz sHiZ" yo!

True languages of hackers? (1, Funny)

Anonymous Coward | more than 10 years ago | (#9827568)

Whitespace [] and Intercal [] .

Better writer than designer? (-1, Offtopic)

Anonymous Coward | more than 10 years ago | (#9827517)

I like Paul Graham articles. Persuasive, interesting, insightful.

Then I had to actually interact with Yahoo! Stores [] . Is it just me or is the usability lousy? Is it just me or does the sales process suck? Maybe whomever ported it broke it?

He can write. Maybe he can code. His approach to user interaction blows.

Best quote from TFA: (1)

zandermander (563602) | more than 10 years ago | (#9827523)

no startup can be the next Microsoft unless some other company is prepared to bend over at just the right moment and be the next IBM.

interesting and biased (0)

Anonymous Coward | more than 10 years ago | (#9827545)

the article makes some good points about hacker personality, but python has nothing to do with being a great hacker. it all depends on the problem you're trying to solve. I know plenty of great hackers, who are regularly produce excellent code. Some of the best hackers I know get there through persistence and independent thinking. Creativity plays a great part, but deep knowledge of a given subject is a better indication of a great hacker.

What staggering arrogance! (0, Flamebait)

Anonymous Brave Guy (457657) | more than 10 years ago | (#9827564)

I've heard the name Paul Graham before, but never really read anything by him until this. I don't think I'll bother again.

A few of his key opinions may have merit. There really is a certain personality type who matches the characteristics he describes, IME, and given certain other character traits (people skills, for example), they really can be the most productive guys to work with. However, a lot of that article is simply stating his own highly prejudiced opinions as if facts. This was the giveaway:

But the next time I talked to him, he said they'd decided to build their software on Windows NT, and had just hired a very experienced NT developer to be their chief technical officer. When I heard this, I thought, these guys are doomed. One, the CTO couldn't be a first rate hacker, because to become an eminent NT developer he would have had to use NT voluntarily, multiple times, and I couldn't imagine a great hacker doing that; and two, even if he was good, he'd have a hard time hiring anyone good to work for him if the project had to be built on NT.

Right, because no original and very well designed software ever gets written by Windows hackers. In fact, no self-respecting hacker would even go near Windows, especially if he wanted to get paid so he could afford somewhere to live, or he was offered a job on an interesting, bleeding-edge development project. Go open source, Linux R0x0rz, yada yada, blah blah. After all, cloning a clone of a clone business or network app while accusing Microsoft of never innovating is much more L337. The guy's like a 13-year-old Slashbot wannabe, and you could summarise the content rather more concisely as "Y'know, INTPs often make good hackers."

Re:What staggering arrogance! (1)

joeldg (518249) | more than 10 years ago | (#9827600)

have you read the authors bio?

one, this is in effect his blog...
two, the guy is "listened" to because of where he comes from and what he has done.

Your specific gripe about NT.. He is not talking about windows hackers, he is talking about guys who demand "control" (RTA.. again..) and you will not get that control in windows.. I am sorry to burst your bubble, but it is just not there.

java duuuudes (2, Interesting)

joeldg (518249) | more than 10 years ago | (#9827565)

I was reading through that article and when I got the point he makes on Java (which I will admit to sharing his point) all I thought was..
"Oh great, now the article will only have posts from the Java duuuudes who resent anything not done in java"
Truth be told and after thinking back through my ten years working as a programmer in many companies, I agree, I have *never* met a true hacker who programmed in java, and I don't think that is a bad thing. In fact, java is what they teach in college, so, it goes to show that it is what the "average" person is going to be using. There are a lot of java jobs (not jobs I would want, and in fact would prefer to sling coffee at a starbucks than work with it again) and they are there for the people who know java.
However, I am curious about python as the language of choice, as I would think that C would trump python, but either way, python does rock hard and seriously. (though python specific jobs are just not out there as much).
Anyway, back to my point.
As a side to that article, hackers having that ability to concentrate, yes.... They do..
Most all of them have some form of ADD or OCD however to counterbalance that ability to focus on things they are intense on.. Wandering around a toy store with a hacker will teach anyone patience.
Paul Graham I feel has very good line on the pulse of this industry.

Offices Rock! (3, Insightful)

billstewart (78916) | more than 10 years ago | (#9827576)

Peopleware [] by DeMarco & Lister, was a fairly good book on software and development organization productivity (and I assume the second edition is still good...) One of their points is that offices are really important, because programming involves a lot of deep focus, and in a cubicle environment, it's much harder to tune out interruptions and stay focussed. Sometimes you need to talk to other people, but when you need to concentrate, you need to concentrate. Two-person offices are usually an ok compromise - you get some social contact, and you get a bit more interaction with other people and projects, but you can still ignore your officemate except if he's having a speakerphone conversation. And of course, if you're into Extreme Programming, two people is probably the perfect number...

Not all jobs are that way - sometimes overhearing what the other people around you are talking about is more useful to overall productivity. And some people can concentrate even with lots of background noise. But for a lot of people, offices would have been more productive than cubicles.

right on! (1)

siculars (103175) | more than 10 years ago | (#9827584)

this guy knows what he is talking about. dont bore me with the minutia. dont bore me with the idiotic user interface garbage. i need quiet. i need equipment and tools. and above all else... i need to love what i am doing. and i do love computers and programming them. the language doesnt really mean much though.

AS/400 (2, Interesting)

Bob Cat - NYMPHS (313647) | more than 10 years ago | (#9827586)

He wrote At a startup I once worked for, one of the things pinned up on our bulletin board was an ad from IBM. It was a picture of an AS400, and the headline read, I think, "hackers despise it.'' [1]

You bonehead, what a MARKETEER thinks is a 'hacker' (that is, a criminal) hates the AS/400.

*This* hacker thinks the AS/400 is the most secure, uncrashable system extant. Go ahead, try to gain superuser (QSECOFR)on an AS/400. You can't. AT ALL. Even QSECOFR cannot change a system program to do something it's not supposed to. Go ahead and try to crash one, I've never seen it done short of a lightning bolt.

BTW, that footnote in his article said nice things about IBM Thinkpads. Sure they are lovely, but PCs are TOYS compared to the REAL computers.

Esoteric Languages (5, Interesting)

Anonymous Coward | more than 10 years ago | (#9827587)

I consider myself to be somewhat of a seasoned hacker. I do hours of pretty intense C programming (Linux kernel code) on a daily basis. I feel that I have mastered the C programming language. Sit me down with any project written in C, and I will be able to (at least syntactically) figure out exactly what's going on with just a glance. I feel absolutely confident in my ability to easily slam through any task in C, without having to resort to any reference guides or manuals.

Now that I've established myself as a cocky elitist bastard to the Slashdot crowd (or do I just fit in now?), I would like to make one thing clear: I hate C.

I hate memory corruption (a.k.a. segmentation faults for the rest of the world). I hate explicit types and declarations. I hate casts. I hate memory management (kalloc, kfree - a.k.a. malloc, free for those alien folks off in userspace). I hate iterators. I hate list structures assembled with pointers. I hate pointers for that matter. All that C really does for me is provide me with activation records during function calls (okay, and cross-platform compatibility). The only thing I like about C is the fact that you can compile it and it's fast.

I hate Java. I hate class cast exceptions. I hate null pointer references. I hate virtual machines. And I still hate iterators.

I hate Perl. I hate interpreters. I hate pathetic attempts at object oriented behavior.

I hate Python. I hate C++. I hate PHP. They all suck, all for (more or less) the same reason: run-time errors.

Enter Objective Caml. More likely than not, when you've got your O'caml program compiling, it just works. No run-time errors, like memory corruption, nonsense casts, class cast exceptions, or null pointer references. You can compile it down to native code, and it runs just as fast as C in many (if not most) cases. There is a complete standard library with pretty much everything you would ever want. There are hooks into GTK and Mysql, among other C libraries. You have real objects, done in a halfway decent manner. Persistent data, by default, exists in a structure (like a list or a type), as it should. Functions are first-class citizens. Iterative structures are possible, but usually not required. Tail-end recursion introduces no stack overhead. Algorithms implemented in O'caml just look elegant, like lambda calculus expressions.

The problem, of course, is that it will take me several more years before I get to be as efficient in O'Caml as I am currently in C. And anyone who comes in after me to maintain the code will probably know C much better than O'Caml. This means that for any userspace projects that I do at work, it's gotta be in C. I can get by in C, because I am a very disciplined coder, and I know all the quirks and tricks to developing and maintaining good C code. Occasionally, I will get a nightmare mystery segfault in a very large project, and I will curse C and yern for O'Caml, but I must persist.

At the end of the day, my own Open Source projects that I do on nights and on weekends are in Ruby (if they are web apps) and O'Caml (otherwise). This doesn't necessarily mean that O'Caml is the best language for any given project (mainly do the competency of the employees, current and future, with regards to O'Caml). Maybe in about a year or so, after writing a few Open Source projects in O'Caml on my own time, I will feel confident enough to suggest I use it for a project at work. Even then, it will be a hard sell, despite the fact that it is superior to C in almost every way.

So my point, if I have one, would probably be that true hackers like to experiment with esoteric languages that the rest of the world knows little about. The shear number of programmers out there who know C and Java present a significant barrier to entry for elegant languages like O'Caml. I suppose that getting the academic types to emphasize languages that solve many of the problems that have plagued computer languages for the last 30 years might begin to help with the situation. Until then, I'll be firing up gdb...

Java Vs. perl (5, Insightful)

fimbulvetr (598306) | more than 10 years ago | (#9827605)

He's right. You guys are so personally offended you can't see the forest for the trees.

He's talking about hackers here, kids. Not 90% of the /. crowd. In your opinion, who's the most likely hacker?

a. sysadmin
b. java developer
c. janitor

Personally, I'm voting for (a). (A) because most sysadmins deal with perl, lots of unix systems, they know *nix inside and out.
Java guys are out of the question, they're too wrapped up in their baby blankets sucking their thumbs to realize they are not _in_ the group we're speaking of.
Janitors, well, it's possible, but probably not common.

I'm a sysadmin, and I user perl all day long. Sometimes at night, when a brute force ssh attack comes along. I need to know which exploits are out there, I'm constantly trying to break my system. I'm constantly learning about the newest buffer overflows in solaris. I am intimately aware of memory space in the kernel. I don't live in a Java Dream World (tm). I don't have all day long to dream of how, if java were tangible matter, it'd be able to cure world hunger. I'm too busy living in the Real World(tm).

In conclusion, while it's uncommon to have good hackers know they're good, it's a lot more common to have a bunch of wanna-bes think they are "the hackers".

Python/Perl better than Java?! (0)

Anonymous Coward | more than 10 years ago | (#9827607)

The "Python and Perl are real languages, for real hac0rz! PHeAR mY SKiLLZ!" rant was a bit comical. Does this guy actually *work* in a real, corporate environment?

To give you an example. At my job (Fortune 100 company), in my department, we design and develop internal web applications to support the business. Applications are load tested to support up to 100 concurrent users per server. They also average around 15-20 lines of code per hour. This is all using a structured "dictated" Java "framework" that was developed in-house to keep things "standardized". I chose to write an application totally separated from this process. Mine has had more than 1100 concurrent users (and will likely scale to over 3000), and was written at the rate of around 110 lins of code per hour.

So in response to the article, Great Hackers (TM) choose the right tool for the right job, and don't need to express their Perl fetish in environments where a year after they leave, some poor guy in India needs to go through and implement a new feature in your mad-skillz perl script.

Astrology for Geeks (4, Insightful)

jjohnson (62583) | more than 10 years ago | (#9827612)

Graham essentially spouts a lot of geek cred virtues that suit the stereotype of hackers that we all, in some way, want to be. So we all read the article, see a little bit of ourselves in it ("yeah, I'm pretty politically incorrect, too."), and feel good about how special we are. Just like astrology profiles based on your sign contain a lot of qualified compliments ("you speak your mind, sometimes offending other people without meaning to."), Graham's articles have a constant thread of "geeks are special, and you're a geek, too."

Taken literally, the people Graham is talking about are perhaps 2-3% of the coding population. In other words, they're the equivalent of supermodels, rock stars, and brilliant twentysomething CEOs, and just as accessible to you or me. In practical terms, you'll almost never, ever work with, hire, or be the kind of person he's discussing, so put down the geek wank material.

Every time I read a Graham article, I feel dirty at the amount of false modesty and self-congratulation involved. He's like a digital Stuart Smalley.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>