Hacker (term) - Programmer Subculture of Hackers

Programmer Subculture of Hackers

In the programmer subculture of hackers, a hacker is a person who follows a spirit of playful cleverness and loves programming. It is found in an originally academic movement unrelated to computer security and most visibly associated with free software and open source. It also has a hacker ethic, based on the idea that writing software and sharing the result on a voluntary basis is a good idea, and that information should be free, but that it's not up to the hacker to make it free by breaking into private computer systems. This hacker ethic was publicized and perhaps originated in Steven Levy's Hackers: Heroes of the Computer Revolution (1984). It contains a codification of its principles.

The programmer subculture of hackers disassociates from the mass media's pejorative use of the word 'hacker' referring to computer security, and usually prefer the term 'cracker' for that meaning. Complaints about supposed mainstream misuse started as early as 1983, when media used “hacker” to refer to the computer criminals involved in the 414s case.

In the programmer subculture of hackers, a computer hacker is a person who enjoys designing software and building programs with a sense for aesthetics and playful cleverness. The term hack in this sense can be traced back to "describe the elaborate college pranks that...students would regularly devise" (Levy, 1984 p. 10). To be considered a 'hack' was an honour among like-minded peers as "to qualify as a hack, the feat must be imbued with innovation, style and technical virtuosity" (Levy, 1984 p. 10) The MIT's Tech Model Railroad Club Dictionary defined hack in 1959 (not yet in a computer context) as "1) an article or project without constructive end; 2) a project undertaken on bad self-advice; 3) an entropy booster; 4) to produce, or attempt to produce, a hack(3)." “hacker” was defined as "one who hacks, or makes them." Much of the TMRC's jargon was later imported into early computing culture, because the club started using a DEC PDP-1 and applied its local model railroad slang in this computing context. Despite being incomprehensible to outsiders, the slang became popular in MIT's computing environments outside the club. Other examples of jargon imported from the club are 'losing' "when a piece of equipment is not working" and 'munged' "when a piece of equipment is ruined".

According to Eric S. Raymond, the Open source and Free Software hacker subculture developed in the 1960s among ‘academic hackers’ working on early minicomputers in computer science environments in the United States.

Hackers were influenced by and absorbed many ideas of key technological developments and the people associated with them. Most notable is the technical culture of the pioneers of the Arpanet, starting in 1969. The PDP-10 machine AI at MIT, which was running the ITS operating system and which was connected to the Arpanet, provided an early hacker meeting point. After 1980 the subculture coalesced with the culture of Unix. Since the mid-1990s, it has been largely coincident with what is now called the free software and open source movement.

Many programmers have been labeled "great hackers", but the specifics of who that label applies to is a matter of opinion. Certainly major contributors to computer science such as Edsger Dijkstra and Donald Knuth, as well as the inventors of popular software such as Linus Torvalds (Linux), and Dennis Ritchie and Ken Thompson (the C programming language) are likely to be included in any such list; see also List of programmers. People primarily known for their contributions to the consciousness of the programmer subculture of hackers include Richard Stallman, the founder of the free software movement and the GNU project, president of the Free Software Foundation and author of the famous Emacs text editor as well as the GNU Compiler Collection (GCC), and Eric S. Raymond, one of the founders of the Open Source Initiative and writer of the famous text The Cathedral and the Bazaar and many other essays, maintainer of the Jargon File (which was previously maintained by Guy L. Steele, Jr.).

Within the computer programmer subculture of hackers, the term hacker is also used for a programmer who reaches a goal by employing a series of modifications to extend existing code or resources. In this sense, it can have a negative connotation of using inelegant kludges to accomplish programming tasks that are quick, but ugly, inelegant, difficult to extend, hard to maintain and inefficient. This derogatory form of the noun "hack" derives from the everyday English sense "to cut or shape by or as if by crude or ruthless strokes" and is even used among users of the positive sense of "hacker" who produces "cool" or "neat" hacks. In other words to "hack" at an original creation, as if with an axe, is to force-fit it into being usable for a task not intended by the original creator, and a "hacker" would be someone who does this habitually. (The original creator and the hacker may be the same person.) This usage is common in both programming and engineering. In programming, hacking in this sense appears to be tolerated and seen as a necessary compromise in many situations. Some argue that it should not be, due to this negative meaning; others argue that some kludges can, for all their ugliness and imperfection, still have "hack value". In non-software engineering, the culture is less tolerant of unmaintainable solutions, even when intended to be temporary, and describing someone as a "hacker" might imply that they lack professionalism. In this sense, the term has no real positive connotations, except for the idea that the hacker is capable of doing modifications that allow a system to work in the short term, and so has some sort of marketable skills. There is always, however, the understanding that a more skillful, or technical, logician could have produced successful modifications that would not be considered a "hack-job". The definition is similar to other, non-computer based, uses of the term "hack-job". For instance, a professional modification of a production sports car into a racing machine would not be considered a hack-job, but a cobbled together backyard mechanic's result could be. Even though the outcome of a race of the two machines could not be assumed, a quick inspection would instantly reveal the difference in the level of professionalism of the designers. The adjective associated with hacker is "hackish" (see the Jargon file).

In a very universal sense, hacker also means someone who makes things work beyond perceived limits in a clever way in general, without necessarily referring to computers, especially at the MIT. That is, people who apply the creative attitude of software hackers in fields other than computing. This includes even activities that predate computer hacking, for example reality hackers or urban spelunkers (exploring undocumented or unauthorized areas in buildings). One specific example are clever pranks traditionally perpetrated by MIT students, with the perpetrator being called hacker. For example, when MIT students surreptitiously put a fake police car atop the dome on MIT's Building 10, that was a hack in this sense, and the students involved were therefore hackers. Another type of hacker is now called a reality hacker. More recent examples of usage for almost any type of playful cleverness are wetware hackers ("hack your brain"), media hackers and "hack your reputation". In a similar vein, a "hack" may refer to a math hack, that is, a clever solution to a mathematical problem. The GNU General Public License has been described as a copyright hack because it cleverly uses the copyright laws for a purpose the lawmakers did not foresee. All of these uses now also seem to be spreading beyond MIT as well.

Read more about this topic:  Hacker (term)