プログラミングの「デーモン」って何?語源は?
問いは木下が出したもので、答えは Claude Code と調べて書いたものです。
Q(木下の問い・直感)プログラミングとかでいう「デーモン」ってなんのこと?語源は?
Aデーモン(daemon)は、画面を持たず裏でずっと待機し続け、必要になったら仕事をする常駐プロセスのこと。ユーザーが直接触るアプリと違い、バックグラウンドで動き続ける。代表例=sshd(SSH接続を待つ)、httpd/nginx(Webリクエストを待つ)、cron(決めた時刻にジョブを起動)、macOSのlaunchd(常駐管理役。木下のSpotify取得や家計簿の自動化もこれ)。Unix系では末尾にd(=daemon)を付ける慣習。Windowsでは同じものを「サービス」と呼ぶ。
語源はギリシャ神話の「daimon(δαίμων)」=善でも悪でもなく、人と神の中間で見えないところで物事を取り持つ精霊。ソクラテスを導いたダイモーンと同じ語。「姿は見せないが裏で働いてくれる」性格が常駐プロセスにぴったり。命名は1963年、MITのProject MAC(CTSS)のプログラマたち。彼らが引き合いに出したのは物理の「マクスウェルの悪魔」=箱の中で速い分子と遅い分子を裏で黙々と選り分ける小人。命名者Fernando Corbatóが「あの悪魔から取った」と語っている。だから綴りも悪魔のdemonではなく古典綴りのdaemonをわざと選んでいる。「悪魔」と訳されがちだが、本来は縁の下の力持ちの精霊のニュアンス。
補足BSD Unixのマスコットが赤い小悪魔(BSD Daemon、通称"Beastie")なのも、この語源を茶目っ気で拾ったもの。見た目は悪魔だが、意味は働き者の精霊の方。
補足2(マクスウェルの悪魔も「悪魔」は原義からズレている)実はマクスウェル本人はこの思考実験を"demon"(悪魔)とは呼んでおらず、「有限の能力を持つ存在(a finite being)」「門番(doorkeeper)」と中立的に表現していた。"demon"と名付けたのは友人のウィリアム・トムソン(ケルビン卿、1874年頃)。マクスウェルはこの呼称を好まず、「これは悪意ある魔物ではなくただの弁(valve)のように働くもので、demonはギリシャ語daimonの意味=中間的な存在として受け取ってほしい、devil(悪魔)ではない」という立場だった。つまり連鎖は「daimon(中立の精霊)→ トムソンがdemonと命名(マクスウェルは弁だと補足)→ 1963年MITが悪魔綴りdemonをあえて避けてdaemonと命名」で、三段とも本来は「悪魔」でなく「縁の下で黙々と働く精霊」。むしろ古典綴りdaemonを選んだMITのプログラマの方がトムソンのdemonより原義に忠実。(トムソン命名/マクスウェルの言い直しの逸話は科学史の定番だが、どの手紙・講演かの細部は文献で揺れがある。)
補足3(daemonとdemonは語源が同一か?)完全に同一。両方ともギリシャ語daimon(δαίμων=善悪の中間の精霊)→ラテン語daemonが出発点で、元は一つの語。そこからキリスト教が異教の神々や精霊を「悪しきもの」として取り込む過程で、ラテン語daemonが「悪魔・悪霊」の意味に転じ、それが英語のdemon(綴りもae→eに簡略化)になった。一方daemonは古典綴りをそのまま残した形で、意味も中立の「精霊」に留まる。つまり同じ一語が、綴りと意味で二股に分かれた——demonは悪魔化した枝、daemonは原義を保った枝。だから本項の「MITが悪魔綴りdemonを避けてdaemonを選んだ」というのは、この分岐した二つの綴りのうち中立側をあえて拾ったという話。