Kubota2020.01.07スペシフィック・コード2020-01-071行のコードソフトウェアと、それを記述するコンピュータ・プログラムは、今日もっとも身の回りに溢れ、私たちの生活の中に偏在するメディアとなった。コンピュータはプログラムに書かれたコードを翻訳、解釈、実行することで、大量のデータを処理し、その結果を表示したり、コンピュータ同士でやりとりする。人々は、コンピュータのプログラムを作成するだけでなく、ソフトウェアを日常的に使用することで、ものごとの見方や考え方を形作っていく。私たちは、プログラム・コードをつくるだけでなく、プログラムによってつくられている。プログラムは、コンピュータと人間の双方が理解可能な、人工言語によって記述されている。プログラムはコンピュータと人間のコミュニケーションの記述であり、より一般的には(分析や解釈の対象となる)「テクスト」である。過程が埋め込まれている。変数や関数の名付け方や、アルゴリズムの注釈や解説といったプログラムのアルゴリズム以外の部分にも、さまざまなものごとを書き込むことができるし、逆に人間にとって理解しにくいよう難読化することもできる。プログラムは数学/数値的、論理/構造的な言語であると同時に、文化/人文的、思想/哲学的なテクストでもある。実用的な、あるいは有用なプログラムの多くは、正しく、効率よく実行すること、あるいは保守や改良、再利用がし易いことが求められている。それらを巧みなバランスで実現したコードはしばしば、コンピュータ・プログラミングの「ART(技芸)」と呼ばれる。した自明な目的や有用な機能がないプログラム・コードでありながら、多くの人に共有されているものも存在する。PRINT」と呼ばれる1行のBASICプログラムである。64という、米コモドール社が1982年に発売開始した8ビットの家庭用コンピューターで、この極めてシンプルなコードを実行すると、斜め線、または逆斜め線のグラフィック記号がランダムに1つづつ、左から右、そして上から下へと表示されていく。画面が一杯になると2行ずつスクロールし、このプログラムは(中断するまで)永遠にこの表示を繰り返す。当時のコンピュータの速度は遅かったので、記号が画面を埋め尽くすのには約15秒かかる。このたった1行のコードが、当時のさまざまななパーソナルコンピュータに移植され、さまざまなバリエーションが生みだされた。Pressから出版された。ジェネリックでないコード今日の、使いやすく、わかりやすく、役に立つ、そして技芸に優れたソフトウェアからみれば、こんなちっぽけで単純な迷路生成プログラムは、取るに足らないもののように見える。そんな、40年近く前のマイクロコンピュータのための1行のプログラムに対して、今なお多くの人が関心を持ち、議論し、さらには今日のコンピュータにも移植され、さまざな修正版が実行されているのはなぜなのだろう。analytics)が、対象そのものに触れることなく、そのマクロな傾向を把握しようとするのに対し、このコードは私たちに、ミクロな「精読」を要求する。その精読は、限られた専門家による精読ではなく、(コードが短いがゆえの)万人に開かれた、そして対象に自由に手を加えることができるような精読である。伝統的なプログラミングにおいては、プログラムで記述しようとする対象を分析し、それをなるべくシンプルなかたちで抽象し、(人間にとって)わかりやすい形で表現することが推奨されてきた。codes)」と呼べるだろう。スペシフィック・コードという呼び名は、ジェネリック・コードの対義語であるだけでなく、米国の美術家ドナルド・ジャッドが1964年に提示した「スペシフィック・オブジェクト」という概念にも由来している※2。ジャッドのこの概念は、50年代から60年代に制作された、アメリカ美術の新しい傾向の特徴分析から生まれたものである。「彫刻でも絵画でもない」このスペシフィック・オブジェクトのように、スペシフィック・コードはプログラム・コードであるだけでなく「テクストでもポエトリーでもある」。一般的で汎用のコードは、コードそのものよりも、コードが記述しているアルゴリズムとその実行結果が重要であることが多い。それに対して、スペシフィックなコードは、コードそのもの、そこに何がどのように記述されているのかが重要である。PRINT」が描く迷路自体)だけではなく、コードを実行した主体がその実行をどのように受容(観賞)したのか、コードの実行中に何が生み出されているのか、そしてそれらが指し示しているものごとは何なのか、ということに思いを馳せなければならない。ミニマルであるが故に、固有のものであると同時に拡張的でもあるスペシフィック・コードは、ユーザーにシステムやツールを提供するのではなく、ユーザーとしての、つまり個人の使用から見たコードの内在的な可能性を探求し、それを限りなく拡げていこうとする。通常のプログラミングにおける有用性や再利用性のような、客観的な価値や機能を実現するのではなく、その意味や価値は状況や文脈(コード以外の環境)に大きく依存している。スペシフィックであるということは、ジェネリックでないだけでなく、それが異質であり、強いインパクトを持っている、ということでもある。テクストとしてのコードスペシフィック・コードが現れる代表的な場として、「コード・ポエトリー」と「ライヴ・コーディング」の2つがあげられる。コード・ポエトリーとは、その名前の通り、コードを用いて詩を書くことである。Poetry※3には、このような規範が書かれている。どんな言語でもいい:あなたが一番好きな言語で書いてください。コンパイルできること:とはいえ、インタープリタ言語で書かれたものでも受け付けます。韻を踏むこと:とはいえ、現代の名作は規範を逸脱しています。このサイトには、さまざまなコード・ポエトリーの作例が掲載されている。Heatonの詩はもっとも短いものである。PRINT」と同じように、単にテキスト出力を無限に繰り返す(だけの)ものであるが、時間を表す変数名の「t」と出力を繰り返す文の間には、意味の詩的な結びつきがある。{poems}※4」というアンソロジーには、55のコード・ポエトリーが掲載されている。これらは、プログラム・コードとして実行するよりもむしろ、テクストとして読まれることを意図している。LOVE(処理されない愛)」は、C++のプログラムではあるが、その実行結果ではなく、プログラムのエラー管理機能としての「例外処理」が持つ意味を用いた詩である。Soul」も同様に、Python言語としての意味とテクストそのもの意味が重ね合わせられている。Kerrによる、「./code–poetry※5」は、逆にコードの実行結果に着目したものである。そこにはコードの実行時に具体詩、あるいはアスキーアートのような視覚的出力が生まれる、実行詩としてのコード・ポエトリーが数多く収録されている※6。–poetryトップページの「turing.poem」のスナップショットパロールとしてのコードライヴ・コーディングは、プログラム・コードを直接操作しながら行うライヴ・パフォーマンスの総称である。その起源は、21世紀初頭のラップトップ・ミュージック、さらには80年代のFORTH言語の音楽制作への使用に遡ることができる※7。今日のライヴ・コーディングは、Algorave※8というクラブ文化との融合や、プログラミング教育への応用※9など、多様な文化と結びついている。ライヴ・コーディングのスタイルには、白紙のエディターから始めて、その場で一からすべてのコードを書く人から、事前に用意していたコードのフラグメントを、DJのようにその場で組み合わせていくスタイル(CJ:コード・ジョッキー)まで、さまざまなやり方がある。基本的にライヴ・コーディングにおけるコードは、音のようにその場で生まれ、その場で消える。コード・ジョッキーのように、事前に準備しておくことはあっても、パフォーマンスの場で一度実行されたコードを、そのまま別のライヴで再利用することはない。TidalCycles※10というライヴコーディング言語を用いて行われる、アレックス・マクリーンのパフォーマンスだろう。彼が2018年11月に来日した際に出演した、DOMMUNEでのライヴの様子が以下に記録されている。2018TidalCyclesという言語が、少ない入力で迅速に出力(パターン)を変化できるように設計されているため、アレックスが書くプログラムは決して長くはなく、どんなに長くても数行で、全体が1画面の中に収まる程度である。ライヴ・コーディングにおいては、ディスプレイが身体であり、この身体をパフォーマーと観客が共有することから出発していることを考えれば、常にコード全体を一望できることは、ライヴ・コーディングの演奏者にとっても、リスナーにとっても、重要な意味を持っていることがわかる。何よりアレックスのコーディングで印象的なのは、コードの入力のしなやかさと、書いたコードを実行し終わるとすぐに消し、新たなコードを次々と書き続けていく、エフェメラルな姿勢である。プログラム言語というと、どうしてもアルゴリズムを正確に記述するラング(規則体系としての言語)を思い浮かべがちだが、アレックスのライヴ・コーディングにおけるコードは、話しことばとしてのパロール(個人的な発話)である。コード入力の行き来はアレックスの思考の構造を垣間見せ、カーソルの揺らぎはアレックスの思考の状態を反映している(ように見える)。このパフォーマンスでは、映像のちょうど18分のところで突然コンピュータがクラッシュし、再びそこからライヴを再開するのだが、そんなハプニングも決してエラーやミスには感じられない。日常の会話においては、言い直したり、中断する(させられる)ことは茶飯事である。パロールとしてのコードは、スペシフィック・コードのもうひとつの重要な特徴である。通気口としてのコードソフトウェアが日常のインフラストラクチャーとなり、スマートフォンが生活の日用品となった今、それらは生活の中で、ますます見えなくなっている。人間は、スマートフォンを運ぶメディアとなり、人々のものの考え方や行動は、暗黙のうちにソフトウェアによって操作管理されている。冒頭で述べたように、プログラム・コードは確かに人間がつくったものであるが、逆にプログラムによって人間なるものがつくられている。した状況の中、個人、あるいは市民としてのエンドユーザーが、自らの手でプログラムを書き、それを実行することに、一体どんな意味が残っているのだろうか。短いミニマルなコード正しさよりも大切なものがあるコードアルゴリズム以外の部分も重要なコード環境や文脈に依存するコード実行する必要のないコード話し言葉のように生成され消滅するコードといった特徴のいくつかを持つ。それはいずれも、IT/SNS企業やエリートハッカーのように超越的に見える何者かが提供してくれる、使いやすく、わかりやすく、役に立つものとは違うかもしれない。スペシフィック・コードは、自分でつくり実行するものであり、変更できるものであり、他の人たちと共有できるものでもある。その意味で、スペシフィック・コードは、究極のエンドユーザー・プログラミングであり、今日の資本主義と監視社会の中で、個人が自由に息をするための、通気口のひとつにもなる。僕自身、個人が生き延びるための通気口としてのスペシフィック・コードを書き、そのことについて、もうしばらく考え続けたいとも思っている。2019で販売)」である。シンプルな構文による、サウンドパフォーマンス用ライブコーディング言語の「P-Code」とその実行アプリケーションも、本論におけるスペシフィック・コードが現れる場の典型例といえるだろう。テキストは、例えばここで読むことができる。(2012)※2テキストは、例えばここで読むことができる。デザイン学科メディア芸術コース教授/アートアーカイヴセンター所長。ART部門優秀賞をチーム受賞。(メディア芸術部門)を受賞。久保田晃弘の思索と実装』『メディアアート原論』(共編著)『インスタグラムと現代視覚文化論』(共編著)『ニュー・ダーク・エイジ』(監訳)『世界チャンピオンの紙飛行機ブック』(監訳)などがある。