大学のころから、僕には「詩を書くようにプログラムしたい」という欲求がある。
普通のプログラムは、論文を書くようなものだ。
十分に準備し、突込みが入らないように綿密に計算して書かなくてはならない。
しかし、詩を書くというのはそういうものではない。
自分の考えを表現できればそれでいい。他人がそれに共感してくれればうれしいが、反感を持たれたって別にかまわない。
残念ながら、今のところ詩を書くようなプログラム言語には出会っていない。
プログラムというのは、相変わらず一部の人間だけが扱える特殊技能だ。
おかげで、それは僕の飯の種になっているのだが。
それでも、時折「これは、詩を書かせてくれるかもしれない」と思えるプログラム環境がある。
はじめてそれを感じたのは、大学時代に awk を扱ったときだった。
string と int の違いを気にする必要も無い。文字列を char 配列と考える必要も無い。
連想配列で大量のテキストを縦横無尽に叩き切り、集計する。
大量のデータを操作するときには、とても心強いツールとなってくれた。
大学を卒業し、就職したゲーム会社では、awk を武器にして大量のデータと戦った。
ゲーム会社の新人の仕事なんて、膨大なデータの整理がほとんどだ。
しかし、僕は awk で整理ツールを作り上げ、普通の人が半日かかる作業を1時間で仕上げるようにしていた。
コンピューターが作業をしている1時間、暇なので漫画を読んでいてよく怒られたのだが (^^;;
#どうでも良いが、このとき作ったツールは自分用であり、他人に見せた覚えも無い。しかし、なぜか会社を辞める直前に、いつの間にかこのツールを皆が(社外の人まで!)使っていることが判明した。
自分ではバグがあることも承知、直すのも面倒なので回避しながら使用していたのだが、皆が使うのならもっと修正すればよかった。
そのまま何も言わずに会社を辞めたが、あの後誰かツールの保守をしているのだろうか…
やがて awk では十分な武器とは言えなくなり、perl を覚えた。
perl は awk より強力で、awk より面倒くさい武器だった。
「詩を書くような」プログラムは無理だったが、C 等に比べるとずっと簡単に自分の考えを表現できた。
perl は、会社を辞めて独立するときにも役に立った。
会社を辞めたのは WEB の黎明期。perl で CGI を組める人間には、十分な仕事があったのだ。
perl の後は PHP を使っているが、これではもはや詩は書けない。
ごく普通のプログラム言語で、CGI をつくる上で使いやすく速いという以外何の特徴も無い。
かわって可能性を感じた言語は、Excel だ。
実のところ、会社でゲームを作っていたときにもデータ処理などで使ってはいたのだが、Excel は非常に可能性を秘めた言語だ。
日本では残念ながら、「表計算」の名前のとおり計算に使うか、計算すらせずに「表」を作るための便利なワープロにしか使われていない。
しかし、Excel はデータ処理にも使えるし、未来予測にも使える便利なツールだ。
最小限の手間で最大の効果を得られる。Excel を使っているとき、詩を書くようにプログラムを書いていると感じることがある。
実は、妻が最近 Illustrator を使っている。
日記で書き忘れたが、欲しいというので昨年 12 月に、購入したものだ。
絵を描いているのを横で眺めていて、しびれる。
これは久しぶりに「詩を書くようなプログラム」を感じさせてくれるツールだ。
絵というのは非常に感覚的なものだ。その意味では、そもそも詩に近い。
しかし、Illustrator で絵を書くという作業は非常に論理的で、むしろプログラムに近い。
大まかな線を書いたら、その線を加工していく。
太くしたり細くしたり、ランダムに揺らぎを加えたり。
どんな加工をしても、元の線は崩れない。2重3重に加工を加えたり、加工した線と加工しない線を同時に描いたりもできる。
それぞれの線は「プログラマブル」なのだ。気の済むまで加工できる。
そして、加工した内容はそのままに、元線を修正することもできる。
加工のアルゴリズムだけを、別の線に適用することもできる。
Excel がデータを華麗に加工して見せたように、Illustrator は画像を華麗に加工してみせる。
その華麗さは、Photoshop などの比ではない。
どんなにプログラマブルだといっても、所詮は絵を描くためのツールだ、という人もいるかもしれない。
しかし、Illustrator は実際のところプログラム環境だということも言っておこう。
そもそもが、Illustrator というのは「PostScript」言語を生成するためのエディタだ。
そして、Illustarotr 自身が、外部言語から操作できる、巨大なオブジェクトライブラリとして設計されている。
現時点では、Illustrator は JavaScript/VisualBasic/AppleScript から操作可能だが、「Illustrator がスクリプト操作可能」なことが重要なので、対応言語はこれからも増やすことができる。
話は飛ぶが、PostScript というのはページ記述言語であるが、同時に Forth 系のスタック型言語であったりもする。ちゃんと条件分岐や繰り返し命令がある。
ということは、PostScript によって操作され、PostScript を生成する Illustrator なんてのも作れる。
ただ、ここら辺になると大道芸的な軽業としては面白いが、詩を書くように軽やかさがあるわけではない。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |