4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

そうだったのか!ソフトウェア開発に息づくギリシャ神話

Last updated at Posted at 2020-01-26

はじめに

紀元前約15世紀から始まったとされるギリシャ神話は普段の生活に深く根ざしていて、日常の様々な場面でギリシャ神話が由来となっているものを見つけることができます。

例えばサイレンの語源となっているセイレーンは、美しい歌声で船乗りを誘惑し、心を奪ってしまうという伝説の海の精であり、その姿はスターバックスコーヒーのロゴにもなっています。

私たちが行っているソフトウェア開発でも、調べてみると「あの名前はギリシャ神話が由来だったのか!」という発見がたくさんありました。その中で有名なものをいくつかご紹介します。

名前

トロイの木馬 (Trojan horse)

トロイの木馬はソフトウェアに関わりがあるギリシャ神話として、もっとも有名ではないでしょうか。

ゼウスは人間が増えすぎた事を憂い、その数を調整しようと画策します。これが後のトロイア戦争へとつながりました。

戦争も終盤、舞台となったトロイの城の前に大きな木馬があり、トロイ軍はこれを敵のギリシャ軍が降参して献上したものと思い込みます。この木馬を場内へ入れてから、まちを挙げて勝利の大宴会を開きました。ところが、この木馬の中には多くのギリシャ兵士が潜んでいたのです。トロイの兵士たちが寝静まってた頃、潜んでいたギリシャ兵士が一気になだれ込み、見事襲撃に成功します。そしてこれがトロイア戦争終戦の決め手となりました。

これになぞらえて、「有用な(少なくとも無害な)プログラムあるいはデータファイルのように偽装されていながら、その内にマルウェアとして機能する部分を隠し持っていて、何らかのトリガによりそれが活動するファイル等」をトロイの木馬といいます。

Zeus

Zeus は Rails のプリローダー gem です。Rails は起動時に行われる処理のため起動が遅いのですが、プリローダーを使用することでその起動時間を短縮する事ができます。

しかし、Zeus は Rails 5 には正式に対応しておらず、Rails 5 以降は Spring が公式なプリローダーなので利用されるケースはかなり少ないはずです。

Zeus と Spring の比較については下記の記事が参考になります1

さて、ゼウスはギリシャ神話の要となる神であり、幾多の神を生み出しています。

全知全能の神ですが、女性関係にはとてもフリーダム。姉ヘラにはカッコウに変身してアタック、当時の妻テミスと別れて結婚します。

また、白い牡牛に変身してテュロスの王女エウロペ2が気を許したところで島に連れ去ります。

さらには、父親を殺害されると予言され塔に幽閉されていたダエナには黄金の雨に変身してジョインしたという話があります。このシーンを描いた絵画について次のページが参考になります。

ちなみに三番目の妻ヘラはこれらゼウスのプレイボーイな性格に激しく嫉妬し、相手とその子どもに仕打ちを行います3。ヘラは結婚の神だったというので、なんというかまぁ物事上手くいかないという事ですね。このような神と言えども人間味あふれるストーリーがギリシャ神話の魅力でもあります。

Eclipse

Eclipse は Java で記述されたオープンソースの IDE (統合開発環境) です。プラグイン拡張により Java のみならず、複数の言語に対応した開発や便利な機能を利用する事ができます。

IDE というと、ここ数年は IntelliJ IDEA に押されているイメージがありますが、Eclipse もまだまだ現役で開発が続けられています。バージョン 3.2 から 4.8 までコードネームがあり、4.5 までギリシャ神話のキャラクターに由来する名前になっています4

バージョン コードネーム ギリシャ神話のキャラクター
3.2 Callisto アルカディア王リュカーオーンの娘・カリストー
3.3 Europa テュロスの王女・エウロペ
3.4 Ganymede トロイアの王子・ガニュメデス
3.6 Helios 太陽神ヘリオス
3.7 Juno ゼウスの姉で正妻ジュノ
4.4 Luna 月の神アルテミス
4.5 Mars ゼウスとヘラの子供で戦いの神アレス

ちなみに私がエンジニアとしてキャリアをスタートした時は、バックエンドを Spring Framework、フロントエンドを Flex Builder (途中で Flash Builder に改名)で実装していたのですが、いずれも Eclipse 上で開発を行っていました。しばらくメモリが4 ギガバイトで、1日に何度かハングアップするたびにマシンを再起動をしていた記憶があります。

ギガ

ギガは量の接頭辞とされており、後置された単位の 10^9 倍を表します。

例えば1ギガバイトは1バイトの 10^9 倍になります。ただし、コンピュータの世界では 2^30 倍として表される事もあり、2^30 を厳密に表現するためにギビという単位があります。例えば AWS EC2 のインスタンスタイプ一覧 ではメモリサイズの表現として GiB(ギビバイト) が使われています。

ギガの由来はギリシャ神話の巨人ギガンティスからとられています。

Amazon Athena

Amazon Athena は AWS の分析関連サービスで、S3 に保存・蓄積したログに対して SQL クエリを投げて分析を行えるサービスです。

大容量データ分析サービスとしては Google の BigQuery を利用するケースが多いと思いますが、Google の外からはデータを一度 BigQuery に転送させる必要があります。Athena はデータソースとして S3 に蓄積・保存されたログを分析するため、分析対象の一時データが AWS にあり BigQuery へ転送・分析するほどでもない、というケースで利用しやすいです。

ギリシャ神話では、神ゼウスが最初の妻メティスを飲み込んだ後、激しい頭痛がするので斧で頭を割ってみたところ、武装した女神アテナが誕生したという話があります。

ちなみに「妻を飲み込む?斧で頭を割る?武装して生まれる?そんなバカな!」というツッコミはギリシャ神話では野暮である事をここでお伝えしておきます。

アテナは理知的で気高い戦いの神として存在するため、ビジネス(またはデータ分析)を戦いと見立てた Amazon の思いが名前に込められているのではないでしょうか。

ケルベロス認証 (Kerberos)

ケルベロス認証はシングルサインオンを提供するネットワーク認証方式で、マサチューセッツ工科大学 (MIT) の Athena プロジェクトによって開発されました。

ギリシャ神話でのケルベロスは冥界の番犬として登場し、現在も様々なゲームで登場しているので、知名度はとても高いと思います。

Apache Cassandra

Apache Cassandra はオープンソースの分散データベース管理システムです。

ギリシャ神話でのカサンドラはトロイの木馬の舞台、トロイの王女です。

彼女は太陽の神アポロンから、自分の恋人になる代わりに予知能力を授けられたのですが、その予知能力によってアボロンが自分を捨てる未来が見えてしまい、アポロンの愛を拒否します。これに怒ったアポロンが、カサンドラの予知を誰も信じなくなるという呪いをかけます。これが原因でカサンドラは城の前にトロイの木馬があった時に、木馬を場内に入れることは破滅につながることを予言していましたが、誰にも信じてもらえませんでした。

予知能力の功罪について考えられさせられるストーリーですね。

ちなみにカサンドラ症候群もこのカサンドラが由来になっています。

デーモン (Daemon)

デーモンは Unix 系のマルチタスクオペレーティングシステム (OS) において動作するプロセス(プログラム)で、主にバックグラウンドで動作するものを指します。具体例としては crond, httpd, inetd などが挙げられます。

ギリシャ神話では半神半人の守護神として登場しています。

分子をより分けてくれるという物理学や熱力学の空想上の存在であるマクスウェルの悪魔が発想の元になっていて、バックグラウンドプロセスの「裏でひっそりと動いて、常に仕事をしてくれる」という動きが、マクスウェルの悪魔の動きと酷似しているのがきっかけになっているようです。

アトラシアン (Atlassian)

アトラシアン (Atlassian) はオーストラリアのシドニーに本社を置くソフトウェア企業で、代表的な製品として JIRA や Trello、Bitbucket などがあります。

ギリシャ神話ではアトラスはティタン神族の一人として登場します。 全知全能の神ゼウスがその地位を確立する前、オリンポスの神々5を引き連れ、ゼウスの父クロノスティタン神族と戦いを繰り広げます。ティタノマキアと呼ばれるこの壮絶な戦いは、オリンポスが勝利し、戦いに敗れたアトラスは罰として世界の西の果てで天空を支える役を課せられます。

アトラシアン創業者の一人、マイク・キャノンブルックスはこのアトラスに惹かれて社名をアトラシアンとしました。アトラシアンの昔のロゴは、人が何かを支えているように見えるのですが、これはアトラスが天空を支える場面だったのですね

また、真・女神転生やペルソナシリーズなどの作品で有名なゲーム会社のアトラスも社名がギリシャ神話が由来ではないかと思うのですが、ソースは見つかりませんでした。

Prometheus

Prometheus はイベントの監視と警告に使用されるオープンソースソフトウェアです。

神ゼウスは増えすぎてしまった人間の数を調整しようとトロイア戦争を仕向けるなど、人間に対して冷遇する事が多かったのですが、人間に協力的だったのが神プロメテウスです。プロメテウスは人間を創造した神とされ、ゼウスが人間から火を奪ったため、プロメテウスが神から火を盗んで人間に与えました。そのため、現在、我々が火を使えるのはプロメテウスのおかげとされています。

ただし、この事件によってプロメテウスはゼウスの怒りを買い、生きながらにして肝臓を鷲についばまれる罰を与えられてしまいました。神は不死身なので、傷は夜のうちに再生します。ヘラクレスによって開放されるまで、3万年もの間毎日この責め苦を受ける事になりました。

また、余談ですが、プロメテウスの弟エピメテウスはゼウスからパンドラという名の女性を贈られます。パンドラはゼウスから「絶対に開けてはいけない」と渡された壺を持参していたのですが、ある日この壺を開けてしまい、中から様々な災いが出てしまいます。これがパンドラの箱7です。

デメテルの法則

デメテルの法則最小知識の原則とも呼ばれる、オブジェクト指向プログラムの設計におけるガイドラインです。

ギリシャ神話でのデメテルは豊穣の神として登場します。また、デメテルとゼウスとの間に生まれたコレーハデスによって冥界に連れされ、コレー奪還を成功させますが、コレーは冥界からハデスからもらったザクロの身を4粒を食べてしまっていたため、1年の1/3を冥界で過ごさなければならなくなります。コレーが冥界で過ごす間、母デメテルは悲しみ、季節が誕生したとも言われています。

ニーモニック

ニーモニックとは、コンピュータのマイクロプロセッサに与える命令の種類を表す番号(オペコード)に、人間が分かりやすいように付けられた英数字の短い符号を指します。

例えば8086マイクロプロセッサにおいて、AXレジスタとBXレジスタを加算して、結果をAXレジスタに格納する命令は、マシン語で表現すると次のような2バイトになります。

2進数表現: 00000001 11011000

このままだと人間にって分かりづらいため、ニーモニックでは次のように表現します。

ADD AX,BX

ニーモニックは、ギリシア神話に登場する記憶を神格化した女神ムネーモシュネーが由来とされています。

ムネーモシュネーはゼウスとの間に9人の学芸を司る女神を生みましたが、この女神たちはムーサと呼ばれ、ムージアム (museum) の語源にもなっています。

Hermes

Hermesは、Android 上の React Native の実行に最適化した Facebook 製の軽量な JavaScript エンジンです。

ギリシャ神話ではヘルメスゼウスの子どもとして登場します。泥棒と嘘の才能があったため、忠実な部下として活躍しました。また、ヘルメスは貿易、紋章、商業の神でもあったので、Facebook はこの名前をプロダクトに授けたのではないでしょうか。

また、ヘルメスはケーリュケイオンという杖を携えていて、一橋大学の校章にもなっています。医療・医術の象徴として世界的に広く用いられているシンボルマークであるアスクレピオスの杖はケーリュケイオンとよく似ているので混同されやすいのですが、全くの別物です。

ケーリュケイオン アスクレピオスの杖
ケーリュケイオン Esclapius_stick.png

ちなみに、エルメスというとファッションブランドのエルメス・アンテルナショナル社が真っ先に頭に浮かんだ方も多いと思いますが、こちらは創業者の名前がティエリー・エルメスであり、直接の関係は無さそうです。

参考

  1. 2013年とかなり古いので注意

  2. ヨーロッパの語源となったとも言われる。

  3. 子どもに罪はないのだが。

  4. 3.5 はギリシャ神話のゼウスの妻ヘラによって雌牛に变身させられたイオになる予定だったが、入出力の I/O と似ているため、これまでのガリレオ惑星にちなんで惑星の発見者 Galileo と名付けられた。

  5. カメラや内視鏡のメーカーであるオリンパスの社名は神々が住んでいたオリンポス山が由来。

  6. もともとは壺だったが、口承の経過で箱になったとされる。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?