ハッカー文化
用法 > プログラミング

1984年、ボストン・グローブ紙は「ハッカー」を「コンピュータマニア (computer nuts) 」と定義した。プログラマのサブカルチャーでは、ハッカーとは遊び心のある賢さの精神に従い、プログラミングを愛する人のことである。これは、もともとはコンピュータセキュリティとは無関係の学術的な運動に見られ、自由ソフトウェア、オープンソース、デモシーンと最もよく関連付けられている。また、ソフトウェアを書いてその結果を自発的に共有することは良い考えであり、情報は自由であるべきだが、個人のコンピュータシステムに侵入してそれを公開するのはハッカーの役割ではないという考えに基づくハッカー倫理もある。このハッカー倫理は、スティーブン・レビー（英語版）の著書『ハッカーズ（英: Hackers: Heroes of the Computer Revolution）』(1984年) で公表され、おそらくその起源となっている。この本では、その原則が成文化されている。
ハッカーのプログラマサブカルチャーは、マスメディアが軽蔑的に使うコンピュータセキュリティの「ハッカー」という用語とは無関係であり、彼らがそれを指す場合、通常は「クラッカー」という用語を好む。この誤用への苦情は、1983年にメディアがThe 414s（英語版）事件に関与したコンピュータ犯罪者を指すのに「ハッカー」という言葉を使ったときに始まった。
ハッカーのプログラマサブカルチャーでは、コンピュータハッカーとは、美的感覚と遊び心のある巧妙さをもってソフトウェアを設計し、プログラムを構築することを楽しむ人である。この意味でのハックという用語は、「学生が定期的に考案する手の込んだ大学でのいたずら」に由来している (Levy、1984、p.10)。 「ハック」と見なされることは、同じ考えを持つ仲間の間では名誉なことであった。なぜなら、「ハックと見なされるためには、その偉業に革新、スタイル、技術的な妙技が染み込んでいなければならない」からである (Levy、1984、p.10)。MIT Tech Model Railroad Club Dictionary (TMRC) は、1959年にハックを (まだコンピュータの文脈ではなかったものの) 「1) 建設的な目的のない記事またはプロジェクト、2) 誤った自己忠告に基づいて着手されたプロジェクト、3) エントロピーを増大させる、4) ハックする、またはしようとすること (3)」と定義した。TMRCの専門用語の多くは、後に初期のコンピュータ文化に取り入れられた。これは、TMRCがDEC PDP-1を使用し始め、コンピュータの文脈で地元の鉄道模型のスラングを適用したためである。当初は部外者には理解できなかったが、このスラングはTMRCを超えてMITのコンピュータ環境でも人気を博した。TMRCから輸入された専門用語の他の例としては、「losing（機器が機能していないとき）」や「munged（機器が壊れているとき）」
などがある。
他の人々は、ハッカーを常に好意的に見ていたわけではない。1989年のMIT living groupsは、コンピュータではなく人間に興味を持つ人を求めていたため、メンバー候補に高度なProject Athenaワークステーションを宣伝することを避けた。あるメンバーは、「ハッカーのサブカルチャーを心配していた」と述べている。
エリック・レイモンドによると、オープンソースや自由ソフトウェアのハッカーサブカルチャーは、1960年代に米国の計算機科学環境で初期のミニコンピュータに取り組んでいた「学術ハッカー」の間で発展した。
ハッカーは、主要な技術開発とそれに関連する人々の多くのアイデアに影響され、それを吸収した。最も注目すべきは、1969年に始まったARPANETのパイオニアの技術文化である。ITSオペレーティングシステムを実行し、ARPANETに接続されたMITのPDP-10 AIマシンは、初期のハッカーの出会いの場を提供した。1980年以降、サブカルチャーはUnixの文化と融合した。1990年代半ば以降、これは現在、自由ソフトウェア運動やオープンソース運動と呼ばれているものとほぼ一致している。
多くのプログラマーが「偉大なハッカー」と呼ばれてきたが、その呼び名が具体的に誰に当てはまるかについては意見が分かれている。確かに、エドガー・ダイクストラやドナルド・クヌースのような計算機科学への主要な貢献者や、リーナス・トーバルズ（Linux）、ケン・トンプソンやデニス・リッチー（UnixおよびC言語）のような人気ソフトウェアの発明者は、そのようなリストに含まれる可能性が高い。ハッカーのプログラマサブカルチャーの精神面での貢献で主に知られている人物には、自由ソフトウェア運動とGNUプロジェクトの創始者であり、フリーソフトウェア財団の会長で、有名なEmacsテキストエディタとGNUコンパイラコレクション (GCC) の著者でもあるリチャード・ストールマンや、Open Source Initiativeの創始者の1人であり、有名なテキスト『伽藍とバザール』やその他の多くのエッセイを執筆し、ジャーゴンファイル (以前はガイ・スティール・ジュニアが管理していた) の管理者でもあるエリック・レイモンドなどがいる。
ハッカーのコンピュータプログラマサブカルチャーでは、ハッカーという用語は、一連の変更を適用して既存のコードやリソースを拡張することで目標を達成するプログラマを指すこともある。この意味では、素早いが見苦しく、洗練されておらず、拡張が難しく、保守が難しく、非効率的なプログラミングタスクを、洗練されていない間に合わせの方法で実行するという否定的な意味合いを持つ場合がある。この名詞「ハック (hack) 」の軽蔑的な形は、日常英語の「雑で無慈悲なストロークで切る、または形作る」[Merriam-Webster] の意味に由来し、「クール」で「きちんとした」ハックをする「ハッカー」の肯定的な意味のユーザーの間でも使用されている。言い換えると、オリジナルの創作物を斧で切るように「ハック」することは、元の創作者が意図していないタスクに使用できるように無理やり適応させることであり、「ハッカー」とはこれを習慣的に行う人のことである。(元の創作者とハッカーは同一人物である可能性もある。) この用法は、プログラミングやエンジニアリング、建築のいずれにおいても一般的である。プログラミングでは、この意味でのハッキングは容認されているようで、多くの状況で必要な妥協と見なされている。この否定的な意味のために、そうすべきではないと主張する人もいれば、醜くて不完全であるにもかかわらず、一部の応急処置には依然として「ハックの価値」があると主張する人もいる。
ソフトウェア以外のエンジニアリングでは、たとえ一時的なものであっても、メンテナンス不可能な解決法に対して寛容な文化は少なく、誰かを「ハッカー」と呼ぶことは、その人にプロ意識が欠けていることを意味する場合がある。この意味では、ハッカーはシステムを短期的に動作させる変更を行う能力があり、したがって何らかの市場価値のあるスキルを持っているという考えを除いて、この用語には実際の肯定的な意味合いはない。ただし、より熟練した、または技術的な論理学者であれば、「ハックジョブ」とは見なされないような変更を行うことができるという理解は常に存在する。この定義は、「ハックジョブ」という用語の他のコンピュータ以外の文脈での用法に似ている。たとえば、プロが市販のスポーツカーをレーシングマシンに改造することはハックジョブとは見なされないが、裏庭の整備士が寄せ集めで作ったものはハックジョブと見なされる可能性がある。2台のマシンのレースの結果は予測できないが、簡単に調べれば、設計者のプロ意識のレベルの違いがすぐにわかる。
非常に一般的な意味では、ハッカーは、認識されている限界を超えて物事を巧妙な方法で機能させる人を意味する。つまり、ソフトウェアハッカーの創造的な姿勢をコンピューティング以外の分野に適用する人である。これには、リアリティハッカーや都市探検家など、コンピュータハッキング以前の活動も含まれる。具体的な例の1つは、MITの学生が伝統的に行う巧妙ないたずらで、犯人はハッカーと呼ばれる。たとえば、MITの学生がMITの建物の上にこっそりと偽のパトカーを置いたとき、それはこの意味でのハックであり、関与した学生はハッカーであった。その他の種類のハッキングには、ウェットウェアハッカー（脳をハックする）、メディアハッカー（評判をハックする）などがある。同様に、「ハック」は数学ハック、つまり数学の問題に対する巧妙な解決法を指すこともある。