注意:このブログは、読者不在を心掛けつつ、白石俊平個人の私的な文章を面白くなく綴るものです。
====
規則には様々なものがある。ぼくの中では、何事かを「決める」ことがそのまま規則を生むと思っているので、人は数え切れないほどの規則を、日々生み出していることになる。(例えば「右に曲がる」と決めた瞬間に「私は次に右に曲がらねばならない」という規則を生み、守るも守らないも自分次第という状況であると捉える)
そうした、数多ある規則の中でも、ぼくが特に注目したいのは創造における規則である。ここでいう規則とは、創造における定式化、パターン化、「型」と言ってもよい。
創造における規則は、創造を促進する。創造とは、個人の脳内に表れたイメージを、具体的な形に落とし込むことである。具体化するためには、多くの意思決定が必要になる。ここで「意思決定」という言葉を使ったのは意図的である。先に述べたように「決める」とは規則を生むことである。つまり、創造とは多くの規則を生み出すことを伴う。いや、この文章における規則の定義から言えば、規則を生み出し実践すること、それこそが創造と言ってもよい。
型を定めることは、そうした意思決定の多くを省略できる。だからこそ、創造にかかるコストを大幅に抑え、生産性を向上できるわけだ。
こうした生産性向上は、ソフトウェア開発の現場では日常的に行われている。その例を挙げていく。
フレームワークは、まさにパターンの塊だ。フレームを定めた上で、ベストプラクティスをパターン化し、生産性の向上に大きく寄与してくれる。
一方ライブラリやコンポーネントは、創造的行為に共通する処理をひとまとめにした存在だ。もちろん大幅な生産性の向上をもたらすが、規則やパターン化という観点からすると、少し違う。
再利用という観点から言うと、フレームワークはパターンの再利用を促すが、ライブラリやコンポーネントはひとまとまりの処理の再利用を促す。
パターンの再利用という点では、デザインパターンもその一つだと言えるだろう。
他に重要なのはプログラム言語だ。言語は、まさにその言語を使うときの思考形式を決定する。動的な言語を使っているときはパターンを好まず、静的な言語のときはパターン化を好む、など、根本的な思考(嗜好)様式にすら大きく影響する。
メタプログラミングはどうか?メタプログラミングという用語自体が非常に曖昧であるが、ここでは「プログラムコードを実行時に動的生成する」という意味に限定しよう。
プログラムコードを動的に生成するのだから、生産性は著しく向上する。静的なコード生成も同様の生産性向上をもたらすが、一度生成したコードの修正が困難である。一方、動的なコード生成はそうした制限とも無縁である(ただし、実行時のパフォーマンスに影響する)。
しかし、なんの入力もなしで動的なコードを生成できるわけではない。コード生成に必要な、最小限の情報提供が必要である。そうした情報から、多量のコードを出力可能にするには、入力と出力の間に多数の対応付け、つまり規則が必要になる。要は、この規則の発見こそがメタなのである。より小さな入力から、より大きな出力を得られるような規則を定義することで、生産性の向上は途方もないレベルになる。そうした規則を定義するには、またたくさんのルールを前提としなくてはならないが、そうした基盤を作ることこそアーキテクトの腕の見せ所である。
「創造には多くの意思決定を伴う」「定式化により、そうした意思決定の多くを省略できるため、生産性が大きく向上する」ということを述べてきた。
最後に現代アートについて。現代アートは、そうした「創造における定式化」を破壊する試みだ。先日読んだ「絵画論」という古い書物で、「絵画とは目で見たものを書くこと」という記述があったが、現代に生きる我々は、その前提がとっくに覆されていることを知っている。
人間は、知らず知らずに創造という行為をパターン化し、それを前提と思い込む生き物である。その思い込みに気付き、パターンをいかに鮮やかに破壊してみせるか。そして、その破壊と言う名の創造すらも、パターン化してしまう可能性を無限に秘めており、それが次世代の芸術家による破壊の対象となる。それが現代アートに課された宿命なのである。
コメント
コメントを投稿