def 1. fails to include hardware hackers. This should be be rewritten to be non-specific to software. (or maybe we can redefine software...)


The Description of "Guru" hacker is slightly off. The definition given in the article is more applicable to a kind of person (or hacker) known as a "Real Programmer" (sometimes people add (tm) to that.) . See the Jargon File. www.jargon.org

So what's a Guru then? Here's some suggestions, and I'll research those later when I have more time.

Generally Computer Scientists are the people that are referred to as Gurus.

Guru originally comes from iirc the india-n word for "Teacher". So, often a person might only be referred to as a guru if they actually also teach their hacking ability to others. This might only be common where I live, so YMMV

I always understood you could divide programmers up as to level of skill as in: amateur, professional, hacker, guru. Usage might only be local, YMMV.

--Kim Bruning


I checked the jargon file (as the first place to look) It defines a Guru as someone who has a "wizard" level of skill, AND is known as a person who is a knowlege resource to others.

Checking the link to wizard reveals that a wizard is someone who has extensive knowlege of a certain subject.

I think the sum of this is that a guru hacker and a computer scientist will often be the same thing, contrary to what is currently being said here.

--Kim Bruning

What was actually discussed seemed to me to be the Jargon File/open source software/etc definition of hacker, so I changed the heading to read "Hacker -- Brilliant Programmer" as guru, in hackish slang, has a different meaning entirely. -- kpearce


From the article:

A Hacker in stride can produce a couple of thousand lines of code an hour as thought translates itself directly into code.

Um, no? - Lament

That's a pretty serious exaggeration, isn't it? I'll change it to "a few hundred" for now. Don't be shy about fixing that if you don't think it's realistic. - kpearce

Does Metaprogramming count? If it does, you could probably think up (extremely rare and probably pathological) situations where millions of lines of code could be generated in under an hour. An average production of 1000s of lines per hour in certain limited situations can be realistic then. --Kim Bruning


Anonymous user 63.224.75.138 is claiming his/her additions are correct. I don't know, but as I've just seen this user being rather annoying on the Afghan bits I'm not inclined to believe what s/he has to say. BUT as I don't know I'm not editing further, I'm just leaving this note to explain why I reverted his/her edit in the first place. -- poco poco 21:34 19 Jul 2003 (UTC)


I added a definition of h4x0r, but I dont' feel entirely comfortable about it. What do you guys think? Please modify it to make it more accurate. I was only able to give my own perceived definition of the term. Tjdw 02:28, 5 Oct 2003 (UTC)


I expect my comments to be somewhat controversial, striking at the heart of a matter near and dear to, likely, much of the crowd likely to be following the backstairs of this topic. I'm not by any means certain of the explanation, but it does seem to fit the facts as I perceive them, and I hope I couched the language appropriately. As the summary says, discuss if you can, edit if you must. I *do* think it might fit just as aptly somewhere else -- or perhaps I've merely deprived the following graf of it's lead... -- Baylink 00:45, 16 Dec 2003 (UTC)


I keep looking at "as thought translates directly into code" and hmm, that might not be quite NPOV, might it?

Using known patterns, using code to generate more code, and doing some careful planning ahead are probably what gives a hacker most of his/her speed. It's not even nescesarily true that code written by expert programmers is hard to read. See a typical scheme interpreter or the linux kernel. Sometimes automated code generation can go astray though, see a Sendmail.mc after you run it through m4 :-P.

People who observe hackers sometimes do see them typing at quite a rate of speed. Usually a good programmer will remember many common patterns (see also : Design Patterns. In practice a programmer will often use simpler patterns than those published ones as well.) , and what you are seeing is the programmer just entering a sequence of patterns with minor variations, so (s)he can just do that by rote. If you're lucky most of your programme consists of those patterns, and you can just keep thinking on the pattern level, which can be many times faster than you can type :-)

 -- Kim Bruning

In the PDP-1 days, Peter Deutsch appeared to be capable of typing PDP-1 assembly language continuously at a speed of around 5 characters per second at a sustained rate over big fractions of an hour, but whether this meant that he was programming at this speed or whether he was expressing programming thoughts that he had built up over days, I don't know. (It might not be impossible to ask him). I am very uneasy at the comments about the speed at which hackers program, though. It reminds me of all the guff about how Edison only needed two hours' sleep a day, or how [insert favorite CEO, statesman, etc.] was so brilliant and energetic that it took a team of secretaries just to write down all the thoughts he came up with, etc. etc. And I don't much like the suggestions that you can program at fantastic speeds by using metaprogramming/design patterns/flow charts/insert methodology-flavor-of-the-month here.

It is said that Mozart, a music hacker of the first order, could, on occasion, compose an entire symphony from first note to last in complete detail in his head in a single instant. Nevertheless, his lifetime rate of production averaged just over one symphony per year. By this metric, Haydn did somewhat better, Beethoven somewhat worse. Perhaps Beethoven could have done better if had been a more brilliant hacker, or if he had made better use of Grady-Booch diagrams. No doubt the productivity of these gentleman was enhanced by their use of familiar musical design patterns such as sonata-allegro form... Dpbsmith 17:30, 6 Jan 2004 (UTC)

Hmmm, did someone use the term metaprogramming for some other definition than I'm aware of?

Yes, Charles Simonyi of Microsoft. According to http://www.theage.com.au/articles/2002/09/18/1032054855232.html,
Simonyi, 54, introduced the concept of metaprogramming at Microsoft, turning it into what people sometimes referred to as a software factory. This was something on which he had written a thesis. The metaprogramming concept did not work out in practice but Simonyi set technical strategy at Microsoft for years.
Robert X. Cringeley wrote "Simonyi's dissertation was an attempt to describe a more efficient method of organizing programmers to write software... the metaprogrammer was the designer, decision maker, and communication controller in a software development group.... individual progammers were allowed to make no design decisions about the project. All they did was write the code as described by the metaprogrammer.... A programmer with a problem or a question would take it to the metaprogrammer, who could come up with an answer or transfer the question to another programmer... the alternative was to allow free discussion of the problem, which might involve many programmers working in parallel on the problem, using up too much of the group's time.... It was clear after less than three months that metaprogramming was a failure." (Accidental Empires, 1992)
And it's even been added to metaprogramming Thanks! :-) -- KB

As I understand it, metaprogramming is the use of code to generate more code as a kind of bootstrap process, which has been done for quite a long time. If you define it that way, you could go on to claim that compilers evolved from early attempts at metaprogramming. Not really a "methodology-flavor of the month" I think.

I do agree design patterns is also the name of a modern methodology. Even so, programmers were probably using some kinds of patterns to organise their thoughts before the advent of the methodology, I'm sure!

"Building up programming thoughts over several days" is a good start at elaborating on "careful planning."

    --Kim Bruning

I've added a (trivial) example where a programmer can generate exactly 1000 lines of code in under 10 minutes at metaprogramming. I'd be interested to see if people can provide a simple nontrivial example too! -- Kim Bruning


Moved from the "Hacker: Computer criminal" section of the article:

  • "What makes someone a "hacker", a "computer criminal", or just a regular computer user? Once these details are known, the proper word (or combination) can be accurately applied."

What word is "proper" is POV, in my opinion.

  • "If a locksmith used his skills to break into a building, few would debate that he had crossed into the criminal world and there would be no need to invent a word to define criminal or malicious locksmiths. The reason hackers face these kinds of problems is because the mass media tends to believe anyone who says they are a hacker - and people say they are hackers because of the mass media's sensationalist portrayals. This deceptive cycle will probably only come to an end with the education of reporters and the general public on what constitutes a hacker and what does not. A group known as the "Hacker Antidefamation League" has this goal."

Characterizing media as sensationalist, speculation as to people's motives -> POV

  • "But, indeed, it's likely that the confusion and dissonance exists precisely because "hacking" describes a skill set -- akin to picking locks -- whose tools can be used both ethically and unethically, by both people who are basically ethical, and those who are not (these are two related, but separate distinctions -- what long-time system administrator has not violated a company policy by breaking into some company facility for an authorized user in order that that person can complete an important project?) This may well be the crux of the argument, in fact: so-called 'white-hat' hackers are uncomfortable at the exposure of the darker side of their skill-set, notwithstanding the fact that, like comic-book superheroes, they only utilize those skills for Good."

This seems to be largely speculation. The parenthetical question doesn't have any place in an encyclopedia, nor does an "argument" without context. The comparison with comic-book superheroes seems silly. Wmahan 05:17, 2 Apr 2004 (UTC)


Removed for POV. Someone (probably me, when I get time...) could work information from this into the entry:

The definition below is all very modern, and its meaning is quite scattered. I believe this is because it was written by computer programmers of recent vintage. The various meanings of the term become more clearly related when one realizes that the word has its roots in centuries past.

Originally, the word was used to describe a worker who made wooden furnishings using no tool other than an axe. By extension, it came to mean one who gets quickly through a necessary job by hook, crook, skin of teeth, and desperation.

It came to be used to describe the sort of writer who wants to write a story and get it published in a magazine of similar stories. When a publisher rejects the story, the "hack" writer reconsiders his text, rewrites parts that might seem weak, and re-submits it to the same or to a different publisher. The process is reiterated until acceptance is achieved.

In London, a prospective "cabby" is required to prove, orally, that he has committed each and every street, lane, alley, and roundabout in his ancient city to memory --- after demonstrating a friendly, untroubled, phlegmatic temperament and perfect driving record. In New York City, a great many taxi drivers learn the many local traffic patterns while actually on the job. They are called "hacks". So the word and its meaning retain a similar relationship throughout these changes in its implementation.

In the 1960s, programmers supplied software for mainframes, like the venerable IBM 1401. This process invloved a lot of paper. When the worker was reasonably sure he'd filled his pages with code that would work, he got an associate or two to do a "walk-through" with him. More pages were filled with charts containing the values of all the computer's registers for each operation in the program for a given, reasonable set of data; the various values of each variable employed; and the values for possible branches, forks, etc. If they didn't notice any outstanding flaws, this peer review would be repeated with others in the department. Then it would be repeated (with a change of data set) under the more experienced eye of the manager, and maybe again with a VP. Walk-throughs were more than normal, they were required; for each run on the actual hardware was a relatively expensive action.

Then came the 1980s and Apple and IBM began the process of putting computing power onto desktops. Desktop programmers almost immediately dispensed with the walk-through entirely. The new norm involved downloading code from the mind of the programmer right into the machine.

Edit. Compile. Link. Run. Shucks! Repeat.

Now we are hacking! That's what it means! Almost all programming done, in these desktop days, is hacking. The word, in itself, should never connote illegality. Like any type of behavior, it may or may not be legal depending on the individual case. Those who assume the word always means cracking in, vandalizing, or stealing are not cognizant of the word's etymology. They are not scholars. They are intellectually non-rigorous. They are schieskopfen.

When you view this larger picture, you see that the word really didn't change much throughout this evolution. It still implies one whose work is rough, quick and dirty, and almost desperate, or barely adequate. Any good definition should fill in the connections among the various contemporary usages. I don't seek to fault or disprove most of the divers items in the definition below, yet I protest that they're all over the map! And as I've endeavored to show, "hacker history" did not "begin...in the 1950s"! Folk have been hacking for quite a long time.

Alas for this theory, the word "hacker" was well established in computers circles at MIT and other places well before "the 1980s and ... the process of putting computing power onto desktops". If nothing else, the type->compile->run debug cycle was established well before them, both by the advent of time-sharing, as well as things like BASIC, created long before the 1980s exactly to encourage that programming style.
Yes, the word certainly has a long etymology before that, but it's not at all clear that that etymology has much (any?) connection to the computer term, which I believe started at MIT. The thing is that the term "hack" at MIT appears to have pre-dated computers, meaning "a neat and clever action", usually a practical joke, and "hacker" appears to have come from that - i.e. the noun predated the verb. MIT had "hackers" in many fields, not just computers. And during the 1970s at MIT, a computer "hacker" was definitely not someone "whose work is rough, quick and dirty, and almost desperate, or barely adequate". Noel 14:18, 12 Sep 2004 (UTC)

Yet more text moved from the article: Industry standard rates of development are in the range of 6-10 lines of code (debugged, and documented) per hour. A Hacker in stride can produce a few hundred or occasionally even thousands lines of code an hour by leveraging their previous work. As a result a Hacker may be able to sketch out the full shape of a program to a level of quality that can be used for demonstrating ideas in less than a week. Thus it isn't hard to see what some companies find useful in Hacker talent.

While I appreciate the attempt at quantification, I think this is ridiculously vague. Lines of code in what language? Lines of code aren't a good measure of productivity anyway; see e.g. [1]. Finally, a program that demonstrates ideas can be anything from one line to millions of lines, so saying that a hacker can write one in a week doesn't provide much information. Wmahan. 00:22, 2004 Apr 30 (UTC)

Lines of Code are the only really handy measure we have y'know. It turns out that lines of code produced is apparently constant for any programmer, regardless of programming langauge, API or whatever. (this is a big claim made by proponents of terse programming langauges such as hmm, for instance perl.) Kim Bruning 21:20, 29 Aug 2004 (UTC)

Recent (2004-07-03) edits

I'm having difficulty accepting the writing style (too informal for encyclopedic content, in my esteem), grammatical "style" (obvious typos and punctuation issues), and content (too much assumption of hacker-as-cracker) of User:Ylbissop's recent (uncommented) edits. I was in the process of correcting the first two when I realised that the temptation to correct the third is too great. I'm therefore asking other Wikipedians to do this. Please.

I ask this because I have a strong conviction that a hacker is as defined in [2], strong enough that I question my ability to remain NPOV on this issue. I could simply fix the style/grammar issues, but I would feel dirty for having my name associated with content to which I so strongly object.

I'm simply referring to the article's preamble, by the way. I don't mind that there are sections referring to "black hats" or whatever; they're just fnords to me. :-)

Thanks in advance! —cky 14:48, 3 Jul 2004 (UTC)

Disputed and POV?

I dunno, who's disputing this? You? You should dispute in talk first then, I didn't spot anything, hence the partial rv. :-)

Here's my 2 cents to the dispute for you: The two agonists (pro- and ant-) definately agree on this version of the story. In fact, since they agree (as in "I got this guy!" vs "Yeah I was stupid to go up against the other guy!"), that's hardly a dispute then. Hmm, and also in an agreement like this, usually the POV the two will reach is called "neutral", if you ask me :-).

So there you go. Have a nice day! Kim Bruning 20:45, 29 Aug 2004 (UTC)

Hi, Kim. :)

No, I am not the one, (per se), who is disputing it. Journalists who cover the computer industry have been disputing many aspects of the Mitnick case since the mid-nineties. Here are some quick links: [3], [4] [5]. This last one is about the movie Takedown, but it discusses the roles of Markoff and Littman... speaking of which:

You suggest that there are only two agonists ;-) involved, and that they alone can act as arbiters of the whether or not this case is deserving of the label "controversial." In fact, they are not the only "players": the authors Jonathan Littman and John Markoff both wrote books that present vastly different accounts of who did what, and why. Markoff, in particular, has been accused of helping the public to convict Mitnick before he even stepped into a court room.

I can live with "cocky mistake," as IMHO anyone who plays around where he shouldn't is certainly being "cocky" in some sense. The "outhacked and outsmarted" line is more problematic, as part of the issues raised by industry journalists concern the extent to which Shimomura's involvement with the arrest and trial was legal, ethical, and even competent. My biggest concern is with describing Mitnick as being the "most... malicious" computer criminal. While other computer criminals have definitely caused uncontested and wide spread damage to systems, sometimes for profit, there is very little indication that Mitnick ever deleted a single file or made a single dime from his peek-and-look cracking, (yet he is the one the FBI chose to go after first, with prompting from Shimomura).

I think it is very tempting to want to believe that this was a case of a great hero going up against an evil villian... but the reality is far more complicated than that.

In any case, this article is about defining hackers. In fact, I think the Mitnick case is an excellent one for considering what a hacker is and isn't, but I won't be making any more edits of this page. AdmN 00:08, 30 Aug 2004 (UTC)

Discrepancies

The information immediatly following this line looks like it needs to be moved elsewhere : "There are several recurring tools of the trade used by hackers to gain unauthorized access to computers:" Dustin Asby 09:39, 12 Sep 2004 (UTC)


One of the most wanted hackers nowdays is so known Skr4tCH, not much information is provided, but he was one of first to crack the windows 2000 source

I removed this listing from the "brilliant programmer" list. First reason: I cannot find any other sources that mention him/her. Second reason: exploiting a security hole and downloading source code does not a brilliant programmer make. Sietse 06:50, 8 Oct 2004 (UTC)

Etymology of the term "Hacker"

Hey, I just wanted to compliment the article on it's great etymology. This is the internet at its best...I had been searching for hours for a good etymology of the word "Hacker" and here it is, all laid out. This will definitely help my essay! I'll probably expand on what's here based on my findings at the OED and such. --pie4all88 02:34, 15 Feb 2005 (UTC)

leet

I have a problem with the comment that leet is not used often, and that it is mainly only for the gaming community. I see people using leet all the time, and the neutrality of that statement seems disrupted. leet is used largely in public discussionf orums of all kinds, web design sites, blogs, and games. This should either be changed or removed. --Zeerus 01:31, Apr 13, 2005 (UTC)

But those people are a tiny minority Proto 14:04, 21 Apr 2005 (UTC)