存在しない技術 Advent Calendar 2021の12月11日の記事です。(19日に公開していますが、存在しない8日間を過ごしていました。)
はじめに
21世紀最大のパラダイムシフトと言えば、やはり抽象画プログラミングですよね。最近も有名な画家ソンナヤ・ツォラン1の生み出したwebサービスのソースコードが20億ブットコインで落札され、話題になりました。
図:20億ブットコインで落札されたソースコード。
この記事ではかつて人間がソフトウェアを設計し実装していた頃に思いを馳せながら、抽象画プログラミングの何がすごかったのかを見ていきます。
そもそも抽象画プログラミング以外のプログラミングとかあるの?
あります。でも最近はよほどのギークでなければ、そのような低級なプログラミングをしなくなりましたね。昔はC, Java, JavaScript,Pythonなどのプログラミング言語と呼ばれるものを使って、人間が自ら手を動かして実装していたのです。
今ではソフトウェアエンジニアと言うと美大卒か芸術の専門学校に通ったものしか就くことが難しい職業ですが、かつては工学を修めた論理的思考を持つものがなる仕事だったのです(想像もつかないと思います)
抽象画プログラミングは何が革新的だったの?
従来のテキスト主体のプログラミングとは異なる2つの要素が加わりました。
1.インタプリタ
2.抽象的な入力
それぞれ見ていきます。
1.インタプリタ
インタプリタというと人のように振る舞うAIのことですね。寂しいときにインタプリタとチャットを楽しむ人も多いのではないでしょうか?
かつては人がつくったソースコード(テキスト)をもとに処理を実行していたようですが、今はもっぱらプログラマの描いた抽象画を解釈し、ときには雑談を楽しむような存在として認知されています。
インタプリタの人格の作成方法は様々ありますが、最近の流行りとして著名な画家の人格のプリインストールをもとに作成したいソフトウェアに合わせて追加学習を行うことが多いと思います。最初に紹介したソンナヤ・ツォラン氏の作品も、事前にインタプリタと何日も政治について熱く語り合ったと言われています 2
2.抽象的な入力
テキストによるプログラミングは論理的で条件に漏れがないことが大切でした。一方抽象画プログラミングでは、感覚的なビジョンやパッションが重要です。
例えば以下の図はFizzBuzzの抽象画です。
「3の倍数でFizz、5の倍数でBuzz、15の倍数でFizzBuzzを出力する」ことが、小さな丸の組み合わせだけで表現されてます。作者の思いが感じられる美しい作品ですね。インタプリタと仲が良い人であれば、この抽象画だけで簡単な動画配信サービスまで作れてしまう場合もあるようです3。
最後に
そんな技術はないです。