祢占堂

はい

Python and Alchemy - Python Advent Calendar 2013

この記事は Python Advent Calendar 2013 のアレです。

Python には SQLAlchemy をはじめ、錬金術由来の名を持つパッケージがたくさんある。適当に列挙する。

SQLAlchemy

アルケミーすなわち錬金術。

Python では SQL ツールキットおよび ORM のライブラリ。

Mercurial

水銀。錬金術におけるもっとも重要な三原質のうちのひとつ。

Python では分散型バージョン管理システム

Flask

フラスコ。実験道具。

Python では軽量なウェッブアプリケーションフレームワーク

alembic

蒸留器。

SQLAlchemy の作者が作ったデータベースマイグレーションツール。

Pelican

蒸留器のひとつ。形がペリカンに似ていることからそう呼ばれた。または金星のシンボル。

Python では静的サイトのジェネレーター。

Elixir

エリクサー、エリクシール、霊薬であり万能薬。賢者の石と同一あるいはそこから作成される液体。

最近は言語のほうが有名だけど、こっちは ORM というか SQLAlchemy のラッパー。開発はたぶん止まってる。

なんでそんなに錬金術用語が多いのか

たぶん Python が蛇だから。蛇というのは錬金術では重要なシンボルで、よくみるのはウロボロスっていう自分の尾を噛んで環になってる蛇(有翼の竜とされることもある)。

鋼の錬金術師とかにもでてくる。ていうか PyPy のロゴがまさにそれ。

他にも、十字架にかけられた蛇が賢者の石を表していたりする。

そもそも錬金術とは

化学以前に存在した、卑金属を貴金属(黄金)に変えて一攫千金メイクマネー秒速1億センチメートルなやつ、とかじゃない。

黄金とは完全な物質、完全な精神のことであり、非金属を変成させて黄金を得るというのは、不完全な人間を完全な存在に変えるプロセスが婉曲的に表現されたもので、こっちのほうが夢がある*1

錬金術では「一なるもの(第一質量)」が変化して様々な存在になるとされていて、その変化に携わるのが「乾 ・ 湿 ・ 熱 ・ 冷」という属性。

その第一質量と属性を結びつけるのが「エーテル」とか「第五元素」「プネウマ」で、それを操ることができれば物質を自由に錬成することができる。で、それをうまいこと抽出して集めたものが賢者の石とか呼ばれる。

錬金術とシンボル

錬金術の文献には数多くのシンボルが使われてる。

錬金術の実験とか知識は非キリスト的なやつだったので、弾圧をのがれたりするために、そういうシンボルとか暗号で技術を伝承していった。オープンソースだけど歴史的経緯を知らないと誰も読めないみたいな感じになってる。

そのうちのひとつが蛇。有翼のやつは水銀、無翼なやつは硫黄を表してて、争っている絵は化学反応を象徴してる。だから Python のロゴにも蛇が二匹いるのかもしれない。

錬金術の変成過程には必ず「黒化(死・腐敗)」「白化(復活・浄化)」「赤化(完成)」がある。ウロボロスはこの死と再生のイメージをもってる。あとその円環構造が全一思想という「全が一を作り、一は全に影響を与える」というのも表してる。

まとめ

Pelican のドキュメントにはこう書かれてる。

「ペリカン」という名前の由来

フランス語で「notebook」という意味の「calepin」のアナグラムだよ。

Why the name “Pelican”?

錬金術まったく関係ない。

他のパッケージについても、錬金術に言及してるテキストとかないっぽいし、単にプログラマが錬金術とか魔術とか好きなだけという感じがする。

真相はぼくよりもっと長く Python 使ってるおじさんたちのが知ってそう。

Next Advent は Hi_king 氏です。

*1:ただ、黄金の錬成は副産物だけど、でも無意味というわけではなくて、それはそれで大切な作業だった。大いなる作業。物質的かつ霊的作業。