2004年02月19日の日記です


究極のプログラムツール  2004-02-19 22:54:06  COMP
大学のころから、僕には「詩を書くようにプログラムしたい」という欲求がある。


普通のプログラムは、論文を書くようなものだ。
十分に準備し、突込みが入らないように綿密に計算して書かなくてはならない。

しかし、詩を書くというのはそういうものではない。
自分の考えを表現できればそれでいい。他人がそれに共感してくれればうれしいが、反感を持たれたって別にかまわない。

残念ながら、今のところ詩を書くようなプログラム言語には出会っていない。
プログラムというのは、相変わらず一部の人間だけが扱える特殊技能だ。

おかげで、それは僕の飯の種になっているのだが。

---

それでも、時折「これは、詩を書かせてくれるかもしれない」と思えるプログラム環境がある。

はじめてそれを感じたのは、大学時代に 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 なんてのも作れる。
ただ、ここら辺になると大道芸的な軽業としては面白いが、詩を書くように軽やかさがあるわけではない。


名前 内容


戻る

トップページへ
Google


Web 当サイト内