Slashdot Mirror


Paul Graham On 'Great Hackers'

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."

39 of 620 comments (clear)

  1. Interesting insights... by Fux+the+Penguin · · Score: 3, Insightful

    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.

  2. All hackers are "great" by beee · · Score: 4, Insightful

    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!

    --


    + Donald Gunth
    + Email: dgunth@quicktek.net
    "Caffeine is the greatest lubricant ever created." -ESR
    1. Re:All hackers are "great" by Telex4 · · Score: 4, Insightful

      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 ;-)

    2. Re:All hackers are "great" by killjoe · · Score: 4, Insightful

      More to the point. Sometimes great hackers make the worst employees. They are hard to get along with, arrogant, and throw tantrums.

      The problem is that frequently the job of programming is routine and boring. Maintaining old code, debugging, writing tests etc are all crucial to delivering software but the great hackers can't be bothered with that boring stuff.

      If you see a great hacker don't hire them as an employee. Hire them as a consultant so they can come and go. They are useless once an application has been built and the mundane stuff kicks in.

      --
      evil is as evil does
    3. Re:All hackers are "great" by bladesjester · · Score: 3, Insightful

      Oh, I think that it shows IP protection spurs innovation - right to places that don't have it. :P

      --
      Everything I need to know I learned by killing smart people and eating their brains.
  3. I'm going to have to go with "blowhard" by jbellis · · Score: 5, Insightful
    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.

    1. Re:I'm going to have to go with "blowhard" by Anonymous Coward · · Score: 4, Insightful

      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.

    2. Re:I'm going to have to go with "blowhard" by mike_scheck · · Score: 5, Insightful

      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!

    3. Re:I'm going to have to go with "blowhard" by JerkBoB · · Score: 5, Insightful

      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.

      --
      A host is a host from coast to coast...
      Unless it's down, or slow, or fails to POST!
    4. Re:I'm going to have to go with "blowhard" by Coryoth · · Score: 4, Insightful

      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).

      Jedidiah.

    5. Re:I'm going to have to go with "blowhard" by TheLink · · Score: 4, Insightful

      I've written 6k line perl programs but that's probably proof that I'm not great. A great programmer/hacker would probably do the same thing 1K lines ;).

      With the wrong language you can't write little programs even if the job is a little job :). Even medium jobs look like huge jobs.

      The advantage of Java is you can outsource the bulk of the programming to 100 different people in Bangalore or something. The hopefully smart person doing the design and architecture at the HQ doesn't have to type many lines of Java - he programs in human languages.

      Whereas with Lisp or other Great Hacker languages while that smart person is 20x-100x more productive, you can't outsource the job, so when the job becomes boring it's hard to keep that smart person around to do maintenance, documentation and other low level stuff.

      And sometimes the boring stuff makes money. I mean how many great hackers want to do accounting programs, custom portals (with ever-changing requirements), ERP etc?

      With Perl the smart hackers have created the blocks of Duplo and Lego (CPAN), and made them available for the not so smart ones like me to use em. Prefab code :).

      --
    6. Re:I'm going to have to go with "blowhard" by Garin · · Score: 4, Insightful

      Perl is a very powerful tool. I've said it before, and I'll say it again:

      Perl, more than any other programming language I've ever used, directly reveals the mind of the programmer.

      Most programmers have very messy minds and very poor discipline. Python neatly solves this problem by having the One True Solution approach. Perl embraces the risks of a TIMTOWTDI, and you often get line-noise (especially with too-cute neophyte "hackers" who figure that doing seventeen operations in one line is somehow a good thing), but in allowing this, Perl allows a few nuggets of utter glorious beauty to shine through.

      Very few people can properly wield Perl in more than a one-off capacity. But those that can will make magic.

      --
      In any field, find the strangest thing and then explore it. -John Archibald Wheeler
    7. Re:I'm going to have to go with "blowhard" by crucini · · Score: 4, Insightful
      I write a lot of Perl. I almost agree with you, but I think most of the code we write at work is just average. It's not great, but it's reasonably easy to understand and maintain. I have written great, beautiful code at times, but it takes more time.

      The key reasons for shaggy code are deadlines and ever-shifting requirements. When the requirement is clearly defined and you have ample time, you can plan the solution and produce something great.

      Really good perl code is, for many things, some of the best code I've ever seen. Really bad perl code is easily the worst I've ever seen. There is more bad perl than good perl.

      I agree with both - but as I said, I mostly see (and write) average code at work.
    8. Re:I'm going to have to go with "blowhard" by WolfWithoutAClause · · Score: 3, Insightful
      I'm sitting in front of a system containing many modules and programs, and between them including over 60,000 lines of Perl. Is that a large system?

      Um.... No. No way. That's midsized.

      Come back when you have atleast 600,000 lines; or 6 million.

      I've worked on projects with 500+ people hacking on the same code, or different streams of the same code. That's a big system. And there are bigger.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
  4. Java by kaffiene · · Score: 5, Insightful

    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.

    1. Re:Java by daveinthesky · · Score: 5, Insightful

      Herd mentality.

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

      But,
      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!

    2. Re:Java by be-fan · · Score: 4, Insightful

      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.

      --
      A deep unwavering belief is a sure sign you're missing something...
    3. Re:Java by Cyno · · Score: 4, Insightful

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

    4. Re:Java by kaffiene · · Score: 5, Insightful
      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

    5. Re:Java by kaffiene · · Score: 3, Insightful

      I don't disagree with a lot of what you say. Just that Java is not popular *now* because of hype. It was hyped at one point, and I ignored it during the period (actually I looked at it, but it was too slow).

      Things have changed. The hype is in the past, Java is a popular language now for real tasks - hence all the jobs in Java - that's not hype, that's work being done. You can't say that the majority of jobs being done are by dot com newbies with Java - glint in their eyes.

      I suppose the reason I like Java is that I tend to program large systems for which maintainability and stability are important. C++ is the other major player in this area, but where C++ has more ability to get close to the metal, I don't need that , and C++ loses out on GC, bounds checking, security management etc...

      But again, like *every* language, whether it is the best fit or not depends on your problem domain. The popularity of Java shows that it fits a lot of problem domains well. The /. meme that Java sucks because it's not elite is somewhat infantile. Being cutting edge is not relevant to getting work done.

  5. creativity plays its part by highwaytohell · · Score: 3, Insightful

    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.

    1. Re:creativity plays its part by Tirinal · · Score: 5, Insightful

      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...

      --
      ~Tirinal
    2. Re:creativity plays its part by Anonymous Coward · · Score: 3, Insightful

      Bill Gates blows goats

  6. Eric Raymond by EmbeddedJanitor · · Score: 5, Insightful
    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.

    --
    Engineering is the art of compromise.
  7. Re:Great hackers use Perl and Python? by RedWizzard · · Score: 3, Insightful
    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.
  8. Offices Rock! by billstewart · · Score: 3, Insightful
    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.

    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  9. Java Vs. perl by fimbulvetr · · Score: 5, Insightful

    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".

    1. Re:Java Vs. perl by Michael+Crutcher · · Score: 4, Insightful

      I think our major disagreement stems from our preferred definition of hacker. You seem to think that hacker means sumpreme uber UNIX geek. I have no doubt that you're a good sysadmin but I think that you really have no idea what the "Real World" is when it comes to programming.

      My definition (and I believe it's fairly close to what the article author meant) was that a hacker was someone who used a programming langauge to solve hard problems. Under my definition you're clearly not a hacker. Sure you use perl to help automate your every day tasks, but these are certainly not "hard" problems. The mere fact that you can get the job done with a few hundred lines of code is adequate proof that these problems aren't hard. Hard problems take a lot of smart people working together to solve.

      I dare you to write an application that is scalable, secure, accesses data of a variety of types, sends instructions across the network, maintains transactional integrity, and more in perl. I'm sure you could do it, but I certainly wouldn't want to maintain it. Besides that you'd have to start from scratch and create a bunch of library code before you could even think of starting.

      This is why a lot of people use java to solve hard problems. Its large user base ensures a gigantic amount of reusable code in the form of extremely robust libraries and frameworks that have already been created. The language itself is not really anything special, but the ability to solve hard problems with the language is pretty impressive.

      In that sense (b) java programmers are far and away the most likely people to be hackers in your list. Just because you don't understand what they're doing doesn't mean they aren't hacking.

  10. Astrology for Geeks by jjohnson · · Score: 4, Insightful

    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.

    --
    Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    1. Re:Astrology for Geeks by Animats · · Score: 4, Insightful
      I've known quite a number of very good programmers, and worked with some of them. By this I mean people who wrote entire operating systems, major CAD packages, game physics engines, key parts of TCP/IP, and such. I mean people from the original Xerox PARC crowd, Stanford, MIT and CMU. I don't mean people who think they're l33t because they've memorized most of the UNIX command line options.

      Few of the really good ones are like the stereotype of the "geek" mentioned here. First, top programmers write well, and have demonstrated this by writing for publication. Second, they have strong theoretical backgrounds. Some are self taught, but are comfortable filling a white board with math. Third, they're not overly attached to a single programming language or operating system. Fourth, they tend to have a sense of aesthetics, and can articulate why something is ugly in an engineering sense, rather than merely grumbling about it.

  11. Tool for the job. by DarkMan · · Score: 5, Insightful
    First of all, if you look at sourceforge stats, the top languages are C, C++, and Java, ...


    If you look at what a good joiner uses, you'll note that he has a large set of tools, and picks the right one. There is no advantage in trying to turn wood on a lathe with a screwdriver - that's the job of a chisel.

    A similar thing applies with computational work. If you truely know what you are doing, you'll use the right tool for the job. If your wanting to accumulate a large set of facts, and then do some comparisons across that set of facts, that's a job for Prolog. No matter that C, or Java, or Perl, or whatever, is more popular. They are just a poor fit to the task, which would mean you'd need to write a predicate logic packeage in them, to get them to work.

    Look at tools like FFTW. It's written in OCaml, and C. Two different languages, each used seperatly, to play to thier strengths. OCaml does tree parsing, and optimising of an abstract syntax tree. C code does the numerical heavy lifing. That's choosing the right (rather, a good, there is a pluraity of good tools for that) tool for the job. Trying to do the abstract syntax tree parsing in C, or the numerical heavy lifting in OCaml is just stupid - you'll end up with something that's nowhere near as good.

    Try writing an OS kernel in Perl.

    'Favourite language' is something that's not a good metric. I've solved problems (and that's what it's all about) using 50 lines of C feeding 100 lines of Fortran feeding 50 lines of Perl producing Postscript that compiled to the desired diagrams, because that's what suited the problem domains best.

    Claiming that 'good hackers like language X' misses the whole point. Good hackers will use the best tool for the job.

    Also, Graham seems to be conviently ignoring the 'can this be understood three years down the line' aspect. There is no point in having code that you can't maintain. That's where Java comes in - it's got a blend of power and syntactic salt help keep things maintainable. Asserting that maintainabilty isn't relevant just strikes me as something that's, well, immature.
  12. Re:AS/400 by DaveJay · · Score: 4, Insightful

    I believe that he mentioned this because the guys at the startup viewed 'hacker' to refer to themselves, not to the crackers that they knew the marketers intended, and that they probably did in fact hate working on the AS/400 -- thus making the truth of the headline (for them) ironic.

    I thought it was pretty funny, actually. :) Since, as you point out, the AS/400 is a secure box, the humor comes from the headline being true in both a literal AND an ironic sense simultaneously.

  13. Python, PERL and Hackers... by Qui-Gon · · Score: 5, Insightful

    Software maintenance is the single largest portion of the software life cycle. (IMHO)

    So, why would I as chief programmer or system architect on a software project (that has a budget) allow pieces of the of software system to be built with languages that the 'common' programmer doesn't know? Sure, you could spend money training all the 'lesser' programmers in Python and/or PERL but, why waste the money? There are perfectly good languages that are defacto standard, provide loads of functionality, development tools, and are known by the 'so-called common' programmer. Every language has its pros and cons. So, if Java's weakness is uber-hackers don't like to use it than PERL's and Python's is maintainability.
    (However, I think author might be poking the tiger with comments like: "Of all the great programmers I can think of, I know of only one who would voluntarily program in Java." And we all feel right into that trap... I know I did. :) )

    Also, the single most important resource on a software project is people (again IMHO). Typical development scenario: New contract has been acquired. So, you as the "boss" hired 10 developers for the new project. One of which falls in the author's super-elite hacker class. The project's initial system delivery goes as smooth as glass cause the 'brains' of the operation (or the 1% as the author calls it) did majority of the work. Well, shortly after the initial delivery the hacker decides the project is now boring, the system was delivered and he or she is now looking for a new challenge. He or she now leaves the program and/or company. Now, there is a serious issue. Since the hacker did 90% of the work, now 90% of the core knowledge of how to maintain the system has left as well. (And I don't care who you are. Jesus himself couldn't write software that is perfect the first time. Bugs are always present and requirements can and do change. And Jesus also can microwave a burrito so hot he himself couldn't eat it!)

    Given the author's profile of the hacker- Quiet, anti-social and loves his/her corner office with the door locked (which is a BS stereo-type)probably also didn't bother to pass any knowledge on to anyone else on the project. So, tell me again why this person was 'the most valuable thing' to us and the delivered system?

    I personally love working with people are technically sharp but, also like working with other people and sharing info. I have caught myself being sort of elitist when I was the technical authority on something. But what does that gain you? Nothing in my experience. You want to be respected by your peers and co-workers? Share with them your knowledge not just lines of code (be it byte-code or interpreted scripts).

    --

    We are blind to the Worlds within us
    waiting to be born...
  14. you can't "become" a "great hacker" by sinnfeiner1916 · · Score: 4, Insightful

    i read in the jargon file once that you cannot "become" a hacker -- rather, others must bestow it upon you. you have to earn it. you can't buy it. you can't decide you are. Yeah, you have to do stuff, but you should be doing it just because. Then others will decide you are a "hacker"

    --
    The More Laws, the less Justice --Marcus Tullius Cicero
  15. summary of slashdot response to this article by BlueStraggler · · Score: 5, Insightful

    "It was really interesting until he pointed out that great hackers work differently than I do, at which point it became clear that he is a moron."

  16. Great Engineers by Keel · · Score: 5, Insightful

    I know there have been flame wars about using the word "hacker" for years, and I certainly don't want to start another one. I don't care if people use the term as a pejorative or a badge of honor. I don't care if it means a computer criminal or software developer. I don't care if it means white hat or black hat. That's a debate best left back in 1985.

    But having said that, I think it's time we retire the word "hacker". The reason I think this is because the use of this word, which is supposed to be so positive: the curious, problem-solving tinkerer, isn't really that positive anymore. I'm talking about hackers as craftsmen (another word the author uses in the article). Defining software development as a craft harkens back to a an age when the industry was young and still defining itself. An age when the industry was hidden behind equipment in a backoffice or university machine room populated by bright-but-eccentric pioneers. A time when the industry, and its pioneers, didn't know what its Best Practices were. Those days are over.

    Today, the industry has matured in many ways. Today, projects, and the organizations that manage them, don't want a tinkerer who will sit in the backoffice and figure stuff out. They want well-rounded individuals who can gather and interpret requirements, communicate with their team, and develop elegant, well-designed solutions using best practices. They want Software Engineers and Software Architects.

    There is still a camp out there that is resisting this change. They still believe in the craftsman lifestyle, and they still code with emacs (oops, another flame war! ;) But I don't think this view represents the majority of developers; it may not even represent the majority of open source developers. The hacker/craftsman camp is a small minority.

    The author makes the point that some developers are so much more productive than their peers because of how they use technology, but does he realize that those productive developers are not hackers/craftsmen pecking out PHP or perl in their emacs session? They are Software Engineers using latest-generation tools and languages, design patterns and best practices, object-oriented techniques and integration technologies like message queues, not to mention web services and remoting. And incidently, they're still employable.

    --

    ----

    "Oh, bother," said Pooh, as he hid Piglet's mangled corpse.

  17. "Perl is geared toward solving problems quickly" by po8 · · Score: 3, Insightful

    A computer is a machine for getting wrong answers quickly.

    Perl can help with that.

  18. Hah! by warrax_666 · · Score: 3, Insightful
    everyone uses it, because it's all they know exists.

    Or maybe they tried it and found it lacking?

    And what is this fascination with OOP? The only task I can think of (please name some more if can think of any) that lends itself naturally towards OOP is GUI/Widget handling. Everything else is much better expressed using so-called "sum types" (read about ML to find out what they are) and pattern matching.

    Forcing everything into the OOP way of thinking without even considering that e.g. the functional/declarative way of doing things might be better suited to some tasks is certainly not clever. So much for Ruby (and Java, but the Java people probably didn't know any better at the time).
    --
    HAND.
  19. Ruby vs Python and blatant lying by ultrabot · · Score: 4, Insightful

    how about something more important, like integrated OOP. nothing's worse than claiming to be heavily object oriented, that has a bolted on OOP model.

    OMG, not the Ruby cliche again.

    Python is not by any stretch less OO than Ruby. Having first class functions is not a liability, it's a strength. Object model is not bolted on Python - everything in Python is an object.

    python reminds me so much of windows. everyone uses it, because it's all they know exists.

    Ruby people go to great lengths to attack Python at every opportunity. For the most part this appears to be because modern Python renders Ruby pretty much irrelevant. Ruby is not really better than Python as a language, period. Ruby is better than Perl, and pretty much equivalent to Python on all linguistic accounts, but loses royally on maturity, community and industrial popularity.

    Offset that with the fact that most Rubyistas that talk crap about Pythonistas don't really have experience with Python, but merely reiterate the misunderstandings of other Rubyistas. Repeating a lie often enough doesn't make it true - it makes for mediocre advocacy that might catch a few clueless perl refugees, but isn't going to work for "great hackers" which is the topic of today.

    --
    Save your wrists today - switch to Dvorak