創造的に生きる技術としてのプログラミング
先日、デザイン誌のAXISの取材があり、その際に肩書きは何にするか尋ねられた。
普段だと、Satellite Youngのサウンドマンだとか、また別の顔だとインタラクティブ・エンジニアや大学講師、メディアアーティストとか、いろいろとあるわけなんだが、取材の主旨を鑑みて、「マルチクリエイター」というあえて使い古された肩書きを選んでみた。
理由は簡単で、これまでいろんな分野のものづくりをして来たからだ。
そういう様々な分野でのクリエーションの中核を成しているのが、情報学的な視点とプログラミングだ。丁度取材があった時期に、SFCでの恩師の一人でアーティストの脇田玲先生とプログラミング教育についてお話しする機会があり、とても盛り上がった。情報学的な視点については、AXISの取材で話したので、ここではプログラミングについて思うところを述べたい。
昨今、小学校でプログラミング教育が必修となることが決まってからというもの、プログラミングに対する世間の注目は高まる一方だし、フリーランスが稼げるスキルとして、プログラミングを学習しようとしている人達も数年前に比べてグッと増えて来ていると思う。親切なオンライン教材も増えた。
但し、世間一般がなんとなく捉えている(であろう)プログラミングと、僕自身や知人のクリエイターたちが身につけて来たプログラミングとはどこか隔たりがあるように思う。
それは、前者が「スキル」としてプログラミングを捉えているのに対して、後者は「リベラルアーツ」としてプログラミングを捉えていることだ。自分自身が、創造的に、主体的に生きる為の技術、という意味だ。
この隔たりの感覚は、今後のプログラミング教育が偏ったものになるんじゃないだろうか、という危機感に繋がっている。
遠回りになるが、自分の経験を紹介することで、その本意を伝えたい。
なお、先に断っておくが、僕の気付きは、既にプログラミングを用いて創造的な活動を行っているひとには、ごくごく当たり前の話過ぎて、「なんだ、べつに当たり前じゃないか」と思うだろう。この記事は、そう言う人には不要だ。
プログラミングを「お仕事を得るためのスキル」とだけ思っている人や、これからプログラミングを身につけて、クリエイティブなものづくりをしてみたい、と思っている人に向けて書いている。
僕が初めてプログラミングに手を出したのは、19歳の頃。
エレクトロニカカルチャー全盛の2000年代初頭、AOKI Takamasa氏と高木正勝氏のSILICOMや、Carsten Nicolai、後にAbleton Liveを開発するMonolake、まだIAMASを卒業したばかりの真鍋大度氏らが、Max/MSP等のオリジナルの楽曲制作プログラムや、ライブパフォーマンス用のプログラムを使って今まで聴いたことも無い、見たことも無い表現を繰り広げていたことに衝撃を受けたことがきっかけだ。
当時服飾の専門学校に通っていた僕であったが、「これはスゴいものを知ってしまったぞ」と思い、服飾そっちのけで夏休み丸々Max/MSPの習得に費やした。
教えてくれる人は周りに誰もいない。
当時のバイブルは、赤松正行氏と左近田展康氏によるノイマンピアノが出版した「トランスMaxエクスプレス」だ。1000ページある分厚いリファレンスを、読み飛ばすこと無く、一つ一つ、実際にサンプルプログラムを弄りながら読み進めて行った。
Max/MSPは、コーディングタイプのプログラムではなく、「オブジェクト」と呼ばれるモジュールを繋げていくような、電子工作の様なプログラミングスタイルをとっている。イメージとしてはモジュラーシンセにも近いかもしれない。これはプログラミング初心者にとっては比較的取っ付きやすい形と言われているものの、プログラミング的な発想を持っていなかった自分にとっては、全く新しい世界で面食らった。
それでも、まだ世の中に無い様な表現をするために、「ツール自体を自分で作ってしまう」ということが強力な推進力になり得ることが何となく分かっていたので、食らいついて習得して行った。それが僕の最初のプログラミングの体験だ。
そしてMax/MSPをそこそこ使いこなすようになり、次はインタラクティブなヴィジュアル表現にも興味を持ち出す。Jitterや、Processingが登場した頃だった。服飾よりも、デジタルテクノロジーを用いた表現にどっぷり浸かってしまった僕は、いよいよもって専門学校を中退し、コンピュータ音楽の研究室のある慶應義塾大学のSFCに進学する。(因に、専門学校を一年休学して予備校に通ったのだが、当初、偏差値は45くらいだった。数学にいたっては、受験に使わなかったので、多分10/100点もとれなかっただろう。)
大学入学後は、その時々で、表現したいことを実現する為の方法として、プログラミングを活用して行った。様々な音響合成プログラミングを実践しながらも、それに飽き足らず、オリジナルのコントローラーを作るためや、フィジカルな現象や物体を制御するアート作品を作る為に、マイコンを使ったフィジカルコンピューティングも覚えた。今では当たり前になったリアルタイムに映像が反応するVJをやりたくて、ジェネラティブグラフィックスプログラミングを覚えた。
人の動きやジェスチャーをトリガーにした表現を実践する為に画像解析に手を出した。博士課程では、統計解析もプログラミングで行っていた。
とにかく、自分がやってみたいことや、好奇心のために、どんどん新しい領域のプログラミングを身につけて行った。
その中で見えて来たものは、扱うモダリティやジャンルに関わらず、共通したアルゴリズムや法則、情報と数理の世界だ。高校では数学を怠けて、服飾の世界に進んだ僕であったが、現象の世界と数理の世界との結びつきを、プログラミングを通じて実感することができた。大学時代の恩師の一人、田中浩也先生が「僕は現象を見ると、数式が見える」と言っていて、そのときはホンマかいな、と思っていたが、これが、見えるようになるのだ。僕の場合は数式よりも、グラフの形だが。グラフが見えれば、そこから段階的に数式に落とし、コードとしてプログラムに実装することが可能だ。
この段階に到達すると、大抵、どんな分野のプログラミングであっても、その本質を見通せるようになる。これは、プログラミングを通じて世界の見方が変わって行った、ということなのだ。
そうなってくると、自分が実現したいものを、どうやって「現すか」、見通しをたてることが出来る。はじめは、他人の真似事どまりだったのだが、だんだんと、自分の奥深くにある創造欲求を実体化することが出来るようになるのだ。
プログラムは別名、「人工言語」とも呼ばれる。これは、自然言語が人間同士のコミュニケーションの為に自然発生したのに対して、人間が機械とコミュケーションをし、機械に自分の欲求を実現してもらう為に人為的に作られた言語、という意味だ。
覚えたての自然言語では、先人の表現を模倣して自分の心理状態を大まかにしか表現出来ないが、徐々に言語運用能力を高めて行くことで、共通性の先に、独自な表現をも可能にし、希ではあるものの、人類史に刻まれる様な新たな表現さえも産み出すことができるようになる。これは、人工言語であるプログラミングも同じことなのだ。初めは真似事、そこから徐々に独自の創作が出来るようになってくる。
僕は、現在、そのようにプログラミングというものを捉えている。だから、プログラミングは只外側から与えられた課題をこなす為のスキルではなく、自分の内側に沸き上がってしまった、「まだ世界に無いなにものか」を現実化することで、世の中に働きかけて行くことさえも可能な、「リベラルアーツ」なのだ。
これからの時代、プログラミング教育を担っていこうとする担当者は、プログラミングをどのように考えているのだろうか。IT技術者が足りない、という産業界の要請から、プログラミングが出来る人材を増やそう、と短絡的に考えていないか、危惧される。予め決まった仕様に従って言われた通りに作る、というも立派な仕事かもしれないし、何らかの課題を解決する手段としてのプログラミングも重要だ。
しかしながら、プログラミングのもう一つの、そして最大の醍醐味は、世の中に未だ存在しないものを、自らの手で現実化することだ。
これは絵画の世界も同じことで、ピカソは十代にして卓越した画力を持っていた神童として知られていたが、それを与えられた仕事をこなす「スキル」としてではなく、新たなる表現を求めるために使った。そしてそれが彼の人生を創りあげたと同時に、多くの人々の世界の見え方まで変えてしまった。言うまでもなく、ピカソの画力を持ってすれば、幾らでも与えられた仕事をこなすことは出来ただろう。
プログラミングも同じで、リベラルアーツとして創造的なプログラミングを身につけて来た人は、スキル的に他者から頼まれた仕事もこなせるが、逆はなかなかそうはいかない、ということだ。更に言えば、他者からの課題が前例のないものだった場合、創造的なアプローチは必須となる。
僕自身、自分の作品制作の為にプログラミングを活用しつつ、また一方では他者の表現を実現する為のエンジニアリングも仕事にしている。
しかし、これが目的も無く、無味無臭の技術としてプログラミングを教育されていたら、なんとか仕事をこなすことは出来ても、主体的に創造的な活動をすることは出来なかっただろう。
幸いにして、現在僕は自分自身の創造行為と、クライアントワークとしてのエンジニアリングと、そのどちらにもプログラミングを活用し、主体的にかつ、社会と調和して生きることが出来ていると感じており、それがとても幸せなことだと思っている。教育は、こうした幸せを多くの人に与えるものでなければならない、というのが、教育者でもある僕の思いだ。
最後に、リベラルアーツの原義にも触れておきたい。
リベラルアーツとは、古代ギリシャ時代の「自由人」=「非奴隷」が身につけるべき技芸のことであった。
果たして、日本のプログラミング教育は「自由人」を育むのか、それとも「奴隷」を育むのか。
「自由人」を育む教育であって欲しいと切に願い、このようなコラムをしたためた。
編集後記(2019/5/29追記);
今、僕は女子美術大学というところで、女子大生を相手にプログラミングを教えています。
女子、しかも美大生という、プログラミングがもっとも苦手と思われがちな人達です。数学的基礎は無い人が殆どですし、「プログラミング、怖い」と思ってる人も結構多い。
そのなかで、僕は、とにかくまず学生の「欲望」を引き出すところから始めます。
美大生というのは素直で、「こんなものを作ってみたい!!」という欲求さえあれば、突っ走って行ける人達の割合が高い。
例え基礎学力がなかったとしても、爆発力があります。
そういう「欲望」がある人は、伸びます。
多少不器用であっても、ガンガンチャレンジしていって、吸収して行く。
一人一人に、同じようにかなり丁寧に教えて行ったとしても、自分の内側に欲望があるひととないひととでは、最終的にはもの凄い差がついてしまう。
それは、たった15日間ワンクールの授業であってもです。
情報学系、理工学系のガリガリプログラミングに取り組んでいる人には、技術的な面では全く適わないでしょう。
しかし、この場合、別の軸での価値なのです。
美大の学生が、ほんの僅かではあっても、自分が夢想したものを、自分の力で形に出来た。
美大生の欲望の持ち方というのは、とってもユニークなことが多い。
なかなか他者がその繊細なニーズを汲み取って、満たしてあげられなかったりする。
だから、たとえ稚拙であったとしても、自分で作ることに意味があるんです。続けて行ったらば、自分と似たような夢想をしているひとの心も豊かに出来るかもしれない。
プログラミングが、必ずしも社会で最重要とされている課題や、マスなニーズ「だけ」に注がれる必要は無い。
マイノリティーであったとしても、切実に必要としているひとに、その気持ちに共感することのできるプログラマーが実現してあげる。
そうやって、技術の役立ち方が多様化していくことが、個人と社会とを豊かにして行くのであろうな、と思っています。