先週末、ついに本命ピアスが届いた。丸一ヶ月も待った甲斐があり、ケースから現れたそれは僕の目論見通りの端正な造形美を湛えていた。ピアスは肌身に着ける装飾品の中でも特に最小の部類に位置するにもかかわらず、その凝縮された美しさゆえに極めて強大な文脈を蓄えることができる。
ここで重要なのは文脈を創出するのは必ずしも装飾品の作り手ではなく、それを身に着ける者にも可能なところだ。事実、僕が買ったのは「スクエアデザインのチタンピアス」という文言以外には大した説明がなく、これから書き記す事柄はどれも僕が勝手に作り出した代物に過ぎない。しかし、どんな内容であれ独自の物語を備えた装飾品は、その瞬間から持ち主にとっては他の既製品を超えた輝きを放ちはじめるのである。
さて、僕は今回の邂逅を通じてある種の情報工学的な文脈を三つほど見出した。結果的にプログラマとしての自己認識を強化する機会に恵まれたと感じている。まず第一に、このピアスが四角い枠を象っているところに着目してもらいたい。
われわれプログラマは人生の大半を四角い枠の前で過ごす。四角い枠に縁どられたディスプレイの中の、四角い枠として描画されるウインドウ群の内側で、四角い枠で構成されるキーボードの四角いキーを叩いて情報を処理している。単純に四角い形のピアスは他にもたくさんあったが、まさしく枠の形状に空洞化しているおかげでこのような文脈を得る手続きが容易になったと思われる。
実は続く第二、第三の文脈もその特有の造形によって成立している。第二の文脈は言わずもがな、ピアスの外観が数字の0に似ているところに由来する。0と1はコンピュータのもっとも基本的な表現形であり、真(true)と偽(false)を判定するためにも用いられる。すなわち、真偽値をも表している。
であれば、これを身に着けている僕は常にfalseでいるつもりなのかというと、決してそうではない。isFalse関数がfalseの可能性も十分に考えられる。また、ほとんどのプログラミング言語は数字の0をfalseとして扱うが、中にはそうではない言語もある。たとえばRubyはfalse自身とnil以外はtrueとして扱う。
最後の第三の文脈は、このピアスの中央部分に切れ込みが入っていたおかげで発見できた。縦の状態では想像しにくいが、横にすると閉じた括弧に見える。閉じた括弧というのは、われわれの分野では空の配列を表す場合が多い。
1array = []
したがって、このピアスは空の配列を宣言していると捉えられる。両耳に一つずつ付いているので厳密には二重配列かもしれない。そこになにが入っていくのかは現状では分からない。あくまで要素を持たずに初期化された段階に留まっているようだ。
当然、空の配列も言語に応じて真偽が異なる。僕の知るかぎりではPythonとPHPはfalseを返す。今時はあまり筋が良いアプローチとは見なされないはずだが、これを利用して判定ロジックを組んでいるコードも珍しくない。
一連の文脈からおのずとフィードバックされる情報として、一見確立された定義や状態が必ずしも同一の結果をもたらすとは限らないという啓示――文脈を支える基底文脈――が垣間見える。このようにあらゆる物語や文脈は与える一方ではなく、多層的に生み出されて返ってくる時もある。
図らずも僕は相反する要素が内包されている様子が好きだ。たとえば本ブログの名前は『点と接線。』で、ファビコンとOGPも三次関数に接する直線であることからいかにも理数的だが、実はそうではない。点や接線それ自体をモチーフにしているのではなく、点と接線によって実装されうるすべての情報を示唆している。
つまり、そこには文字列も多分に含まれている。数字を表す際もint型ではなく大量のユニオン型で処理されており、実質的になにが入って入らないのかはブログタイトルから連想されうるほどには確定していない。遍く分類化を受け入れつつ拒否しているし、拒否しつつ受け入れている。
翻って、このピアスにもディスプレイの枠だの真偽値だの配列だのと盛んに文脈を与えれば、四角いかっちりとした造形も相まってゼロかイチかで物事を判定するような印象を持つが、実際には真逆の結論を備えた物語が返ってきている。これについては、物書きとしての自己認識を強化する機会に恵まれたと感じている。