プログラミングと勇気 (3/4)

このエントリーをはてなブックマークに追加

プログラミングと勇気、第三回目です。だんだんめんどくさくなってきます。
第一回目第二回目はこちらから。








勇気を為すには、勇気に関与しはじめるまさにその瞬間、完全に孤独でなければならない



さて、前段までで勇気の実践に突入するまえの前提条件についての議論がひと通り済んだことになるかと思います。
そして、ここからは実際に勇気を為すことをはじめるか否か、そして実際に勇気を為すまでの過程についての議論になってゆくことになります。
すなわち、さあ勇気をはじめましょう、というわけです。

おそらくここからがこのわりと長めの記事の独特な部分ということになるかと思います。
わたくしとしてはその過程を通じて、プログラマやあるいは漁師といった職業において勇気というものの位置づけがどのようなものであり、なぜそれが価値であるのか、といったことについてのある考えを述べてみたいと思っています。
またそれはプログラマという職業が、これを読まれているみなさん自身もおそらくお感じになられていることでしょうが、周囲からあまり理解されることのない専門技能職であり、なにゆえそれが理解されえないままに留まるのかということについてのひとつの理論立ての試みでもあるでしょう。
つまり、プログラミングにおいては勇気というものが重要な価値をもっており、もしそれが重要であるならば、その実践者であるプログラマというのは、通常はなかなか理解しにくい特殊な倫理によって自らの職業を完成させようと目論む者たちのことを指しているのだ、ということになるわけです。
そして、それは同じく専門技能職である漁師についてもそうであるし、さらにいえばヘミングウェイのような小説家についてもそうであると言えるのであります。
わたくしが言いたいと思っているのは、ようするにそのようなことなのですが、とりあえずはそうした意義づけの問題はさておいて、ともかく話を先へ進めることにいたしましょう。



そうです、勇気のはじまりはいかなるものであるのか、ということについてです。
わたくしはこれからそれについて何ごとかを語るわけですが、実際にはわたくしにはそれを語る資格があるわけではないということをまず表明しておかねばなりません。
というのも、わたくしは勇気を為したものではないからで、したがってわたくしが勇気の深遠なる内奥について何か知っているという保障はどこにもないのであります。
わたくしが今ここでしているのはただ「ソーシャル・ネットワーク」のザッカーバーグや「老人と海」のサンチャゴやそれを書いたヘミングウェイの有り様がのようであったかということについて作品が提示している程度の内容を知っており、それらに基づいて何やら考えごとをしているというに過ぎないのです。
つまり、わたくしもまた所詮はそのときがきたあかつきにはサンチャゴが偉大な大リーガーであるところのジョー・ディマジオを参照したのと同じように、サンチャゴやマークやスティーヴ、アーネストのことを参照したいと願ってあれこれ知識を仕入れているというだけなわけです。
わたくしがそうしているのは、わたくしもまた時がくれば彼らと同じように自身の仕事を、つまり勇気を為そうと志しているからなのですが、実際のところわたくしがそれに価しているのかどうか、わたくし自身は知りません。
知らないままこれまで結構な歳を重ねてきてしまったので、そろそろこいつは見込みがないらしいな、ということになってきているわけではありますが、サンチャゴのように最晩年になってようやく、という事態もないわけではありません(もっとも、彼は若い頃からそれなりに勇気を示しつづけてきた者である、という点は指摘しておかねばなりませんが)。
ですから、ここはまあ腐らずにわたくしなりの彼らの分析でも書きつらねてせいぜい時を待とうというわけであります。
まあ、このような態度こそが、おそらく「いたずらに」ということであるわけなのですが、この点はあまりに本質的すぎるので、全力で目をつぶろうと思います。



さてようやく本題。
勇気と孤独です。
まさにこの関係こそが、わたくしが他のあらゆる語彙を差しおいてまさに勇気ということをプログラミングにおける価値だと断定する由縁なのであります。
言いかえれば、プログラマというのは孤独な職業であり、そしてこの孤独こそがプログラマの主要な価値でさえある、というわけです。

このアジャイル全盛の時節に何を言うのかと思われることでしょう。
ですが、わたくしなどに言わせれば、アジャイルの技法というものはすべてミニマムコミュニケーションとはいかなるものであるか、ということを煎じつめた手法であるにすぎません。
アジャイルはその価値を通常は、速くコンパクトな開発とそれを実現する密なコミュニケーションといった角度から訴求しますが、このことは言いかえれば、できるだけだらだらと余計な対話をせずに、最小のコミュニケーションからのインプットだけに留め、できるかぎり多くのリソースを適切なプログラミングというものに集中させるにはどうすればいいのか、ということでしかありません。
これが意味しているのは、逆説的にではありますが、プログラミングとは孤独な作業であり、したがってそれを自らの職業に据えるプログラマというのは必然的に孤独なのであり、この孤独の中においてこそその職業的達成は可能になるのだ、ということであります。

若干、卑近な例にみえてしまうのですが「ソーシャル・ネットワーク」で、最終的にザッカーバーグが孤独であることは、もちろん彼の孤独というのは帝王の孤独であり、至高の孤独であって、わたくしのような小さな一プログラマの孤独とはまったく異なることは十分に承知したうえでいうわけですが、それでも彼の職業的運命からすればそれは本質的かつ自然な帰結なのであります。
むしろ、彼が孤独のうちに取り残されたときでさえ、彼にはプログラミングが、つまり彼のそれの結晶であるところの facebook が残されているというのが「ソーシャル・ネットワーク」のラストが適切に描き出す様相であるのですが、これはあの美しいラストシーンに対する解釈としてはまったく標準的なものではないらしいので、もしこのような言いぐさに同意するならあなたはおそらくわたくしと同じくプログラマであることでしょう。
彼は自分の創りあげた巨大な(まさに砂上の)楼閣の上で、そのもっともありふれた機能を行使して求愛をなすことさえ可能なのです。
これが特権でなくして何が特権でありましょうか。



さて、ザッカーバーグ、あるいは「ソーシャル・ネットワーク」礼賛はこのくらいにするとして、もうすこし現実的なお話しをすることにしましょう。
つまり、もしあなたがプログラミングにおける勇気をはじめるときが来た場合にどのようにしてそれに臨めばいいのか、という実践上の問題であります。
この点はおそらくこの記事においてもっとも重要な論点です。
なぜなら、わたくしたち多くの雇われプログラマにとっては勇気を為すことそのものよりも、勇気こそが重要であり実際に勇気を為すことを(そうであることを祈念してあるコードを書くということを)はじめることこそが、もっと言えば、ただそれだけが職業倫理上価値のある志向性ということなのだ、ということについて正しく理解するということ、これこそが最大の難関であるからです。
この定式そのものもまたプログラマが孤独であるということからきているのですが、わたくしたちはこの孤独を克服というよりも超克せねばなりません。
すなわち、わたくしたちはたしかに孤独ですが、この孤独であること、そうあれることということそのものが他の職業の者たちにはそうなしえない卓越なのであり、もしわたくしたちに何かを作り出すことができて、他の者たちにはそうできないのだとすれば、それはわたくしたちの専門性ということではなく、いやそれもたしかに条件のひとつではあるのですが、そうだというよりはむしろまさにこの孤独であることに耐えうるという性質にこそ由来しているのです。
そして、その職業的価値であるところの勇気というものの実践を開始するその瞬間にこそ、この孤独であることができるか否かという点がもっとも先鋭的に試されるのであります。



くりかえします。
勇気、それは孤独に、つまりひとりではじめられねばなりません。

これが「老人と海」の教えるところであり、「ソーシャル・ネットワーク」の教えるところであります。
他の職業はどうだかわかりませんが、すくなくともプログラマにとって、あるいは漁師にとって、あるいは小説家にとって、この点は本質的宣告であります。

話は多少ずれてしまいますが、米国の小説家にポール・オースターというのがおりまして、彼の下積み時代のエッセイ集に「孤独の発明 "Invention of Solitude"」という、じつに素晴らしい表題をもったものがあります。
わたくしは結局、彼の小説作品をたいして評価していないようなのですが、この「孤独の発明」を含む、いくつかの小説家になるための方法論についてのエッセイはかなり高く評価しています。
それはわたくしのあまり多くはない座右の書の一冊でありつづけていますし、彼がこのなかで参照した作家というのは今でもわたくし自身の参照する作家でありつづけています。
まあ、それはともかくとして、今このポール・オースターのことを持ち出したのは、彼のエッセイの中身について語りたいということではなく、むしろこの美しい完全な表題である「孤独の発明」というのが正しく「私はこうして小説家になった」ということの言い換えであるという点を指摘したいからであります。
つまり、己の孤独を発明したとき、その者は作家になるのであり、それはプログラマについても、さらにいえば漁師についても同様であると言いたいのであります。

この点は、小説についていえば、しばしばオリジナリティという語彙の中枢として用いられるわけですが、わたくしはこのオリジナリティという言葉はまったくの無内容で、何の助けにもならない言葉だとみなしておりますので、代わりにそこに勇気という語彙をあてるのであります。
つまり、わたくしはオリジナリティという語彙の内実を勇気ということ、すなわち、孤独のうちにはじめられ、さらにはその後の孤独と不安と苦痛と忍耐とをも賭することのできるほどにまで価値のある何ごとか、というように規定しているのであります。
これは通常いわれているようなオリジナリティ(独創性)というのとはかなりかけ離れた概念であります。
そのアイデアをあなたしか実践していないか、ということは最終的には重要ではありません(もちろん、それが前提条件として問われる状況というのはありうるのですが)。
そうではなく実際問題として重要なのは、ただこの孤独であることに耐えうるかということなのです。
そしてじつにしばしばこの孤独というのはオリジナリティに由来しています。
すなわち、あなたがそれを実現してみせるまで、周囲の人間はそんなことが可能であるとは思っていないばかりか、そんなパースペクティヴがありうるということさえ知らずに過ごしてしまう、といったような何か、そのような何かを実際に遂行する者というのは、周囲の無理解という状況によってなかば必然的に孤独のうちに置かれることになるのです。

したがって、勇気の実践者であろうとするわたくしたちが本当に気にしなければならないのは、そのアイデアにはオリジナリティがあるのか、ということではなく、そんなことでは決してなく、問いとはそのアイデアがもたらすであろう孤独に自身が耐えうるのかという点でなければなりません。
つまり、そこにはある種の戦慄が必要だというわけで、これはひとつの指標でもあるのです。
すなわち、その勇気に足るアイデアを想起した自分自身が、そのアイデアに戦慄するという瞬間があったとき、おそらくそのアイデアは本物なのであり、それに囚われたあなた自身を厳しい孤独のうちに追いやるだけの価値をもった何かなのであります。

もちろん、無知ゆえに、すでに存在しているアイデアを自分自身でも思いついて戦慄している、という状況は起こりえます。
たしかにこれはもっともおそるべき誤解で、このような戦慄に囚われたものは、全力で車輪の再発明を行うことになり、その結末にはおそるべきプログラマとしての破滅(つまり赤っ恥と徹底した無視という挫折)が待ち受けていることになるでしょう。
このようなリスクを避けるためにも、つねに現時点における最上の方法とは何であるかについてのトレースを怠るわけにはいかないのであります。



さて、そのような恐るべき誤解を避けることのできた幸福なアイデアというのは、あなたのプログラマとしての経歴のかなりの部分を賭するに足るプロダクトに成長しうるものであることでしょう。
そうであれば、それの実現、すなわち勇気の実践をはじめるのを遮るのはただひとつ、己の怯惰、保身ということに他なりません。
ですが、その時点でこのこと、すなわち、まだこの世に存在していないあなたの勇気の結晶であるコードが実際に存在する運びとなった場合、それが勇気の結晶以外の何ものでもなく、したがってもしそれが将来にわたって存在しない場合、それが生まれてこなかったのはただあなたがそれを産み落とすことをしなかったからであり、つまるところそれはあなたが怯えていたか怠けていたかしたため以外にはありえないのだ、というこの単純な事実を知っているのは、おそらくあなたただひとりだけであることでしょう。
なぜなら、一見のところ良さそうなアイデアというのは、多少トレンドをトレースしているプログラマであればほとんど毎日のように接しているわけですが、その中のどれが本物の勇気となりうるかというのはそれが実際に試みられてみなければ決してわからないからです。
なぜなら、実装がよくなければ、プログラミングにおける勇気というのは決して成立しえず、そして実装というのは実際にリリースされてしばらくメンテナンスされてみなければ、それがよい実装であるかどうか、最終的にはわからないのであります。

このようにプログラミングにおける勇気というのは、その端緒において理解者を欠いているものなのですが、くりかえしになりますが、この理解者の欠如こそが、その対象の実践の価値を極大にするのです。

したがって、このような状勢を定式化すると次のように言えるわけです。

勇気を為すには、勇気に関与しはじめるまさにその瞬間、完全に孤独でなければならない。

言いかえれば、それをはじめるときにそれがみせる希望の大きさにくらべて、賛同者の数が極端に少なく、自身が孤独であったときに、その対象というのは勇気に価する何ものかでありうるのだ、ということになります。

ただし、じつにあたりまえの話ですが、勇気というのは、すべてをひとりで為すことではありません。
たしかにそれを為しているほとんどの期間にわたってその者はこの勇気の可能性の名の下において孤独であるわけなのですが、そして勇気の実践とはようするに孤独の実践こそがそれにあたるわけなのですが、その孤独がもっとも理想的で完全で美しい瞬間とは、この「わがことを為すのをはじめるまさにそのとき」においてなのです。





勇気を為すには、不安にならなければならない


さて、そのようにして戦慄を経験し、勇気への端緒をつかみとったプログラマに次いで訪れるのは不安であります。
すなわち、前段でも述べましたように、自身はこの勇気に見合っているのだろうか、それが勇気に足る対象であるとして自身にそれを達成する能力があるのか、そしてまた何よりも、この戦慄がおそるべき誤解、恥ずべき車輪の再発明、あるいはまったく誰も必要としていない、何ら噛みあうものを持たない無意味な歯車にすぎないのではないか、といった問いが立ち上がってくるのです。
またほぼすべてのケースにおいて、実際に勇気の実践に突入するためには、それまでに自身が受け持っていた役割のいくつかを放棄せねばならず、またしばしば自身のこれまでの経済的な価値や職務上の地位のいくつかを返上せねばならないでしょう。
そして明らかに少なくともしばらくは(それなりの確率で永久に)報われる見込みのない労苦と肉体上あるいは精神上の負担を課されなければならないことそのものへの不安もあることでしょう。

これらの問いは至極もっともな問いではあるのですが、まだ端緒に立ったばかりのあなたにはこれらの問いに迅速かつ直接的に応える術はありません。
それらはある程度やってみなければわからないことなのです。
ですが、このある程度というのがどの程度のものであるのかというのも、実際のところはやはりある程度やってみなければわからないのであって、戦慄の直後のおそらくその職業人生上もっとも美しい状態におかれているあなたにはやはり応えることはできません。
ある種の芸術的立場からいえば、このすべてが未決であくまで可能性に留まっているということこそが完全さや美しさの源泉であるのですが、これは同時に最高度の不安の状態でもあります。
あなたには意図があり、ヴィジョンさえあるのですが、それを保障することができるのはただ自分だけであり、それでいて自分自身への保障もまた欠けているのです。



実際のところあなたを励ますのは、自身のこれまでの職業経験の厚みやそこであなたによって達成されたいくつかのコード、それらの物理的(つまり行数ということですが)規模や論理的規模(つまり込み入ったアルゴリズムであったり、巨大なコンポーネント編成であったりするわけですが)、自身のそれらへの理解の広さや深さ、貢献の度合いなどです。
ですが、これらは究極的にはすべて過去の経験でしかなく、これからかなり長い期間にわたってあなたが書き進めていかねばならない、勇気の対象であるところのまだ存在してはおらず、ただあなたの夢想のうちにまどろんでいるコードを書く際にどの程度役に立つのかわからないのです。

実際わたくしたちの目のまえに転がっている所々の勇気の成果を見渡してみても、かなりのところまで書き進めてしまってから、あるいはリリースしてずいぶんたってしまってから、そのコードが所期の目的を達成するにはまったく不十分であるから、もう一度まっさらから書きなおさなければならない、といった事態はじつにしばしば起こっていることです。
そうでなければ、なかなか version 1.0 に到達しないあのプロジェクトや、突然 1.x 系をばっさり棄てて 2.0.x に全リソースをつぎこみはじめるこのプロジェクトなどが、ここにもあそこにもそこいらじゅうにごろごろしているといった死屍累々の眺望が展開されていることはないはずでしょう。
これらはみな完全な勇気の達成まで到達していない苦闘の諸段階の具体例であり、そのひとつひとつに彼らの勇気への企図とその不完全さの歴史がいっぱいいっぱいつまっているのです。

これからはじめられることになるはずのあなたの勇気(わたくしはそれをプロジェクトというよりこの呼称で呼びたいわけですが)が、このような死屍累々の眺望の一部にならない保障は、実際のところほとんどありません。
蓋然性の観点からいえばおそらくそうなるだろう、あるいはそのような、ひとり立ちしてはいるけれども決して完全ではない道半ばのプロジェクトになることさえかなり困難な事業であることだろう、この両者でない成功したプロジェクト(すなわち正銘の勇気の顕現とその結晶)というのは考慮の外である、といったほうがより自然な描写であることでしょう。
あなたが戦慄し、これからはじめようとしているのは、マクロな視点から冷静にみればそのようなものであり、そんなものをこれからはじめようというのはまったく馬鹿げた向こう見ずな行為であり、一時の気の迷いにすぎないのだというのは、おそらく99%以上の確率で適切なコメントであることでしょう。

プログラミングと勇気についてこうしていま語っているわたくし自身もまたこのような見解に異論はありません。
まったくもってそのとおりです。
勇気の端緒を目のまえにしたあなたが、もし冷静でいつもと同じ客観的な視点を維持しているのならば、そこから出てくるのはこのようなコメントであるはずです。
なぜなら、勇気をはじめていないころのあなたは、今も進行中の何千もの真のプロジェクト(つまり勇気への企図)を横目にしながら、それらのいくつかの内情を観察したり、それらの成果を利用したり評価したりしていたはずであり、そしてにもかかわらずこれまで自分自身はそれに参画してはいなかったはずだからです。

そして、これまでの冷静な判断と異なる判断を強いられること、戦慄が自身にそれをもたらしたということ、これこそが最終的にはあなたの不安の源泉に他なりません。
勇気への試みをはじめたあなたというのは、これまでのあなたとはなにか決定的に異なってしまうのではないか、あなたが変わることでこれまであなたが平和裏に維持してきたあなたの精神状態や生活のサイクルや職務経験や職場環境や家庭環境などが全面的に問いなおされてしまうのではないか、そんなことをしてまでそれは為されなければならないのだろうか、あるいはそんなことをこの一時の戦慄のためにはじめてしまうというのははたして職業人として、もっといえば責任ある大人のする所業だろうか、不安とはそのようなものであることでしょう。

このような不安の正当性が、逆説的にプログラミングにおける勇気の実践が比較的若い世代によって為される事例が多い、ということの定性的な説明になっていると思います。
あなたが勇気を為すことなしに、自身の職業上の経験を積み、しかもそれがある程度の成功をおさめていればいるほど、このような不安は大きく、また正当なものになってゆきます。
そのような場合、バランスを失うことによって被る損失の期待値のほうが、勇気の達成によって得られる価値の期待値よりもずっとずっと大きいことでしょう。
そしてこれは正しい予見なのです。



勇気を為すには、それが投機でなければならない


こうした正当で的確な不安にもかかわらず、あなたは勇気をはじめることをしなければなりません。
プログラミングと勇気について書いているわたくしとしては、是非ともそう言わねばなりません。

理由はきわめて簡単です。
ただそれだけがプログラミングにおける価値だからです。
くりかえしますが、プログラミングにおいては勇気を為すこと、これだけが唯一の価値なのです。
最初の条件「勇気を為すには、価値がなんであるか正しく知っていなければならない」のコメントでわたくしが「価値」とは「勇気」を為すことであるといったのは、このような意味においてであります。
そして、それはその端緒において、そして実際にはそれ以後の全過程においてあなたのおかれる主要な精神状態であるであろう、この不安というものが正しく指ししめすように、本質的に(投資というよりは)投機なのであります。

そして、あなたが見出したその対象が投機的に見えるとき、それはこの不安の正当性にもかかわらず、同時に価値への端緒として十分に的確な対象であるということの証左でもあるわけです。
この不安の正当性と価値の正当性の両立こそが、対象が正しく勇気の対象であるということの際立った性質であり、まさにそれがゆえに勇気とは困難なものであり、またこれまで先人たちが幾度も幾度も達成してきたにもかかわらず、時代を超えて価値のあることでありつづけるのです。
なぜなら、先人たちの業績などあろうがなかろうが、あなたが直面しているこの不安はそのままの純度と規模をもってあなたの目のまえに鎮座しつづけていることでしょうし、またあなたがその不安を克服して勇気へと踏み出すことができるかどうかというのは、状況的にも資質的にも対象の個別性からしても最終的にはあなた自身の問題なのであって、先人たちの判断など参考になりはしないのですから。

たとえばいまこの記事でまさにわたくしがしているように、わたくしたちは先人たちの偉業が、すなわち勇気の実践がどのようなものであったのか、ということについてあれこれと知識を仕入れます。
曰く、ザッカーバーグはどうした、曰く、ジョブズはどうした、曰く、サンチャゴはどうした、曰く、ヘミングウェイはどうした、あれこれ彼らの個別の状況の内実を詳細に調べて検討し、彼らの判断がいかにして的確であったか知ろうとします。
それはわたしたちもまた、機会さえ巡ってくれば、彼らと同じように(あるいは彼らよりもずっとうまく)勇気を為すことができるように準備をしたいためであり、またわたしたちに足りないのはただ状況だけであり、個人の資質ではないのだということを確認したいがためでもあります。
ですが、じつにおそるべきことには、いざそのような端緒がやってきたとき、これらの知識はまったくといっていいほどわたしたちに力を貸してはくれず、対象はあくまでも投機でありつづけます。

したがって、勇気をはじめるにあたって、わたしたちはそれが投機であることを受け入れねばなりません。
それは逃れようがないのです。
おそらくわたしたちはできるだけそこから投機性を取り除こうとつとめ、あれこれ調べものをしたり、綿密に計画を立て、ロードマップを作成したり、誰かを説得したりすることでしょうが、それらはすべて最終的には何も保障してはいません。
それらの努力が示しているのはそうして演繹された未来の蓋然性ではなく、それをはじめるものがどれだけの覚悟を持って臨んでいるのかということについての断片的で不完全な情報であるに過ぎないのです。
ですから、いくらそのようなものを積み上げていったとしても、結局のところ最終的な決断に至ることはありません。
なぜなら、そうした事前の証拠が証明しようとするものは何ひとつ証明されはしないのですから。

くりかえしますが、それはそうではなく、投機なのです。

もしあなたが勇気を為そうと思うなら、この点について正しく認識し、そしてそれにもかかわらずそれをはじめるのでなければなりません。
そしてこの未来への展望が本質的に無価値であるにもかかわらずそれを選び取らなければならないようなとき、頼ることができるのは、私見によれば、このようなテーゼ、すなわちプログラミングにおける価値とはただ勇気を為すことであるという宣告であるのです。



ところで、逆にいえばこれは勇気の実践ではないプログラミングはまったくの無価値であるということを意味しています。
わたくしはこれが正しい命題であると見なしています。
実際、これはプログラミングという分野に際立った特徴なのです。
なぜでしょうか? それはプログラミングにおいては勇気(車輪)の再生産ということは愚かな所業であり、その時点でそれは決して勇気ではなくなってしまうからです。
よいものはひとつでよく、あとはそれをコピーして使えばいいというのは、プログラミングが他のあらゆる分野に対して持っている絶対的な優位性の主要なひとつですが、この点がプログラミングにおける勇気の実践を著しく困難にしてもいるのです。
たしかに今ではインターネットにつながったPCが一台あれば、誰でもこの勇気の端緒の可能性に参画することができるという参入障壁の低さというが一方にはあります。
ですがもう一方には、勇気を為すことができるのはただ一人だけであるというこの厳粛な掟が、「最上かそれ以外か」という二者択一の宣告がプログラミングの世界にはあります。
そしてこの掟は多少情緒的にいえば、コンピュータがノイマン型であることを選択したその瞬間からはじまっているのであり、デジタルであるということが意味することの内実のひとつであるのです。



ちなみに現実には、ひとつの革新的なサービスなりツールなりが登場し、その有用性が証明され、認識されるとまったく同様のコンセプトのプログラムがそれこそ雨後の筍のようににょきにょき生えてくる、というのがわたくしたちのよく目にする眺望であります。
そしてわたくしなども含めてほぼすべてのプログラマたちは、このようなほとんど同じだけどもいくつかの部分において少しだけ違うものを作り、それを売りさばくことで暮らしています。
ですがデジタル化のもっともプリミティヴなテーゼによれば、このようなものは本質的にデジタルデータとしてのエレガントさを欠いているのであって、もしよりいっそうデジタル化とネットワーク化が進み、あらゆる箇所で瞬時に情報が共有され、一切の情報の偏在が取りのぞかれたあかつきには、このような二番煎じ、三番煎じのプログラムというのはその居場所をまったく失ってしまうことでしょう。
ただひとつの正規採用者と無数の習作たちという光景は、わたくしを含む個々のプログラマにとっては決して居心地のよい環境ではありませんが、げんに Apple や google、facebook がもたらしつつある光景というのはそのようなものであります。
すなわち最大かつ最先端の一者(この二つのまったく異なる性質がしばしば両立するというのがソフトウェアの世界の際立った特徴であるわけですが、実際にはソフトウェアだけではなく Intel 以来、コンピュータの世界の厳粛な掟であります)が利益を総取りし、のこりはじょじょに駆逐されてゆくばかりで、一度この構図が確定してしまうと、この構図の範疇そのものを解体することによってしか後発者は先行者のシェアを奪うことはできません。
これは歴史的にもまた定性的にも法則でありますが、この法則もまた、プログラミングにおいてはただ勇気だけが価値であるという宣告を裏付けるものなのです。



さて話を戻しますが、このようなわけで、あなたは不安のうちに投機をはじめねばなりません。
それ以外の経路はありません。
そして、そのときにあなたの背中を押してくれるのは、最終的にはあなたの経験でも、先人たちの偉業についての知識でも、その不安の大きさでもありません。
そうではなく、それをする以外に価値はなく、もしあなたが価値というものにコミットしているのならば(つまり言いかえれば、あなたの職業人生が価値あるものであるべきだとみなしているならば)、あなたはそれをはじめなければならず、いまそれを為すことをはじめなければ今後も自分の仕事には価値が生まれることはないだろうという諦念なのです。

すなわち勇気の端緒に触れたあなたは、まず戦慄し、ついで不安になり、最終的にそれ以外にすべきことなどありはしないと悟り、諦めることによってこの投機をはじめるのです。



勇気を為すには、興奮を鎮めなければならない


さて、そうしたわけで、一度プログラミングにおいて勇気を為すことをはじめてしまった者というのは孤独というなかなかに厳しい状態におかれることになります。
そして、この孤独とは本質的なものであるので、あなたそれに没入し、多くの労力と精神力と時間とをつぎこむようになればなるほど、それだけあなたより孤独になっていくことになります。

ここからしばらくは、そのような状態になったプログラマ(つまりそのときあなた紛うことなきプログラマであるわけなのですが)がどのような心理状態におかれるかについて、見てみることにしましょう。



勇気をはじめたあなたは、何はともあれまずはあの戦慄のもたらした壮大なヴィジョンに囚われることを止めなければなりません。
あなたするのは最終的にはおそらくこのヴィジョンが提示するもの(あるいはその意義ある劣化コピー)であることでしょうが、それは最後に、すなわち勇気を終えたあとになってわかることであり、一旦勇気の実践に参入してしまった以上、いつまでもそのような終末のヴィジョンに囚われている余裕はないのです。
なぜなら目の前にはやらねばならないことが山積しているはずで、これからあなたそうとう長い期間にわたってこの目の前のやらねばならぬことをひたすらにこなしてゆくという作業をえんえんとくり返すことになるはずです。
つまり実際のところ、あなたこれまでこなしてきた業務と異なるのは、それが自身の勇気の対象である、という点だけであったりします。
これは本質的な違いではあるのですが、同時に些細な違いでもあります。
そしてこのことが示しているのは、ようするに結局のところはこれまで培ってきた平常運転(の、できれば最大戦速)でやってゆくよりほかない、ということでもあります。
平常運転をするのに興奮はむしろ邪魔な要素です。
それは自分の持っているものを確認し、まだ持っていないが勇気の対象には不可欠なものを認識し、それをひとつひとつ自分の持っているものに転化してゆく作業です。
このサイクルをできるだけはやくまわす、ということはきわめて重要ですが、やっていることというのは結局のところこのサイクルにつきるわけで、最大戦速を出すためにもやはり興奮に囚われている暇はないはずです。

そうしたわけで、まずはヴィジョンは神棚の上にでも祀ってしまって、興奮を鎮めましょう。
すると、目の前には卑近なタスクが山積みになっているにもかかわらず、透明でどこまでも深く青い眺望が広がっていることでしょう。
それをよく見渡し、ひとつひとつ効率的に片づけてゆかねばなりません。

「老人と海」においても、自身の駆る小舟よりも2フィートほども大きなそれを自身の仕掛けに食いつかせることに成功したサンチャゴがまずはじめにしたことは興奮を鎮め、急がずに待つことでした。
そして深く潜って泳ぐ獲物が水面に上がってくるまで辛抱強く待ちつづけたのです。
もっともわたくしたちプログラマは、いったんことをはじめたからにはドッグイヤーの先頭をつっ走りつづけなければなりませんが、それは初期の熱狂を維持しつづけることによってではなく、通常の業務が最先端を走ることであるという様式でなければなりません。
それは興奮というよりはむしろ獲物を捕らえる好機を待つことに似ています。

「ソーシャル・ネットワーク」のザッカーバーグで、この点について何ごとかを言うのはあまり容易くはありません。
初期のザッカーバーグ君はたしかに熱狂しています。
彼は自分が誰よりもうまくできることを知り、また誰よりもうまくできることを理解してくれる人間たちと環境があることを知って、また誰よりもうまくできるそれが実際にシェアを獲得してゆくことにまったく興奮しています。
そしてこの興奮のままに彼が初期の facebook を作りあげたのだというように描かれていると観るのが作品の鑑賞としては自然でしょう。
ですが、プログラミングの実践について知るわたくしたちとして言えることは、彼が perl を書きまくって初期の facebook を構築しているときにあったのは、あのウィンクルボス兄弟を出しぬいて部屋に駆けもどる瞬間にあった興奮とは別種のものでもっと透徹したものであったはずだということくらいです。
また物語が進行してゆくにつれてザッカーバーグからはじょじょに熱狂がとり除かれ、むしろある種のペシミズムが彼をつつむことになるというのも、演出上の技巧ではありますが、おそらく何らかの示唆を与えてくれるでしょう。



勇気を為すには、いくつかの準備が完全でないことを受け入れなければならない


さて初期の興奮を鎮め、道程を見定めたあなたがまず抱く印象は、いろいろ準備ができていないという単純な事実についてのものでしょう。
たしかにこの勇気はあなたが選びとり、あなたの決断によってはじめられたことではあるのですが、そのタイミングが他でもないたった今であるということを決めたのは、おそらくあなた自身ではないことでしょう。
そうではなくて、それを決めるのはソフトウェア技術やネットワーク技術の歴史の進展といった巨大な枠組であったり、あなたの職業的な成熟や職務上の立場のそれとのかかわりといった比較的小さな枠組みの問題であったりすることでしょう。
それにそもそもあなた自身にはアイデアが落ちてくる瞬間というのを自分で決める能力はないことでしょう。
そんなこんなで、あなたは満を持してことを起こしたのではなく、ことがやってきたので、その端緒をスルーせずにつかみとったというだけ、というほうがおそらくより適切な描写であるはずです。

この点について、すなわちこのようなチャンスというものの一般的な性質について、この記事であらためてくり返すまでもないかと思いますが、これはきわめて自然な成り行きであります。
「老人と海」においてサンチャゴはたしかにいいかげんにどうでも不漁を脱しなければならないとは思っていましたが、生涯で最大の獲物をひっかけるなどということは当然のことながら思っていませんでした。
ごくあたりまえのことですが、引っかかったものがたまたま最大のもの、すなわち漁師にとっての勇気の対象であったために彼の勇気(と「老人と海」という小説)は開始されたのであって、それは入念に仕込まれた仕事の成果というわけではありませんでした。
もしこの端緒が彼の意図したものであったなら、彼はもう少し大きな船に載っていたことでしょうし、そこには数日間の格闘に耐えるだけの備蓄を搭載していったことでしょうし、何よりもじっさい彼は何度も何度もぼやくのですが、よき弟子であり相棒である少年を同乗させていたでしょう。

「ソーシャル・ネットワーク」のザッカーバーグについては尚更です。
彼は準備ができているかどうかなどという小さなことに逡巡している瞬間というのは、あの長くて速い劇中では一度たりともありません。
彼はいつでもまず飛びこんでいき、そしてそこですべてを(うまく)調達していったのです。
もちろん、彼がそうできたのはインターネットという強固できわめて安定した(今ではわたくしたちにとっては大洋にも等しい)インフラがあったためですし、それからこの彼の苛烈で向こう見ずなやり口があとになって代償をもたらすことになるというのがこの作品の主題のひとつなのですが、こうしてfacebook全盛の現在において事後的に叙述するのであれば、それでも、あるいはまさにそのために、彼は成功したのだ、ということになるでしょう。

つまり、わたくしがここで言いたいのは、準備が十分でないのは、いつでも誰でもそういうものであるので、これについてぐたぐた言ってもしかたがない、一度勇気へと踏み出したからには、あとは着実な前進これあるのみである、ということなのであります。



勇気を為すには、助けがあってはならないが、助けがないことをぼやくほどでなければならない


そうは言っても、実際問題としてあなたの準備が足りなすぎれば、あたりまえではありますが、あなたの勇気への試みは失敗に終わります。
ところで、プログラミングにおける勇気の実践のもっとも基礎的な準備とは、あなたが実際にそれを作ることができるか否かということです。
あなたには、あなたが作りたいと願った、あるいは作るべきと宣告を受けたその勇気の対象を実装するだけの準備はできているでしょうか?
この問いは実際のところ、勇気の実践者たるあなたにとっての最大の問題であり、またこれからあなたの為すそれがたしかに勇気であるか否かという点について、あなたとして関与可能な最大の領域なのですが、おそらくその端緒においてあなたはこの問いに力強く首肯し、自身の胸を叩いて自分ならまちがいなくそれを作りだすことができる、と断言できるといった事態はあまりないでしょう。
あなたは何を作ればそれができあがるのかについて(さすがに)だいたいのところは知っていることでしょうが、このまだ足りない何かのそのひとつひとつを現実にどのように作ったらいいのか、はっきりしたことは言えないはずです。
漠然としたイメージ(たとえばあなたが大好きでいつも使っている便利なモジュールの特徴であったり、業界でベストプラクティスと言われている実装のコンセプトであったり)は持っているけれどもそれがどの程度可能なのか、あるいは適切なのかについては判然としないといった状態だったり、そもそもどう作ればよいかまったくわからなかったりすることでしょう。

そして実装が具体的になり、自身の持ちあわせの足りない箇所が明らかになってくればくるほど、まさに職業生活上の実感としてこうした持ち合わせの貧弱さを嘆かざるをえなくなってくるのです。
たいていの場合、初期の目論見というのは実際に自身が為しうるもののすくなくとも数倍程度は巨大なものでしょうから、当初の興奮を鎮め、落ちついて自身の旅程を展望してみたあなたにやってくるのは(これはできればひとつの苦労話として笑い飛ばしたいところでありますが)絶望的な面倒くささの印象であることでしょう。
たしかに眼前に一望されたタスクの山をすべて片づければあなたの所期のヴィジョンは達成されるわけですが、そのことはあなた自身もおそらく承認するにちがいないわけですが、同時にそれは思ったよりも膨大でまさに山のように積み上げられたまさに絶壁のごときTODOであるというのも認めざるをえないでしょう。

そのような膨大なタスクの(山というよりは)壁を目にしたあなたがまず思うのは、助けがほしいということであるでしょう。
そしてそのとき具体的な人物が念頭に浮かぶ場合、おそらくあなたは比較的幸福なプログラマ生活をいとなんできた者であることでしょう。



ですが、このような記事を書いているわたくしがここで言いたいのは、そこで助けを求めにいくというのはあまりよい方策ではないといったことです。
もうしばらくあとになってから助けをかき集めるというのは、おそらく妥当な判断であることもあるでしょう。
ですが、その端緒において、まだ実作業を一ミリも進展させていないところで助けを呼びにいくというのはあまり感心できることではありません。
というのも、おそらくその時点では、あなたの勇気の萌芽はただあなたの頭脳の裡でいっぱいに拡げられただけであり、それを聞いた他者というのは、その者があなたを実際に助けてくれるほどにまっとうなものであればあるほど、具体的な実装を伴わない計画だけの夢想を信用しないはずで、あなたの中ではおそらくすでに確信にまで育ってしまっているけれども、まだ決して存在していないコードのヴィジョンを信用して手を貸してくれることはないのです。
また、定性的な議論として、おそらくこれ以降もこのような絶壁というのには幾度となく遭遇するはずなのであり、そのたびにこの絶壁に挑むのではなく助けを求めにいくような輩というのは端的にいって臆病者なのであって、そんな者には勇気の実践など端からおぼつかない、といったこともいえるでしょう。

ですからあなたはぼやきつつもあなたの仕事に実際にとりかかる必要があります。
ぼやくな、とまではさすがに言いません。
プログラマというのは概してひとりごとの多い人種ですから、周囲の人びともあなたのぼやく姿というのはおそらく見慣れていることでしょうし、そのぼやきがまだあなたの頭脳の裡にしかない巨大な目論見へとひとりでたち向かうサンチャゴのような英雄性に基づくものであるのか、あるいはあなたの手がけた WEB ページの一部が IE6 でだけ表示が崩れることへの憤りといった真の意味で下らない些事からくるものであるか判別のしようがないので、あなたのぼやきというのはあなただけのものに留まることでしょう。
これは同業の者どうしでさえそうなので、プログラマでない者にとっては呪文か外国語のように響く無内容な雑音であるというにすぎません。
ですから、いくらでもぼやいてください。
サンチャゴがぼやくことができたのは、彼のまわりにあるのはただ大いなる海原だけであったためでしたが、あなたがぼやくことができるのは、あなたのぼやきの軽重を他人は判別できず、どんなものでも雑音以上にはなりえないということに基づいています。
共通するのはぼやいてもぼやかなくても同じことだということで、そうであれば、たったそんなことであなたの憂鬱な気分がすこしでも紛れるのなら、そうすればよいのです。
いずれにせよ、あなたがこなさなければならないタスクの山の高さというのは1ミリたりとも変わりはしないのですから。



勇気を為すには、その過程で自身の勇気の価値を進行形で算定できなければならない


そうしたわけで、つべこべ言わずに(いや言ってもべつにいいのですが、ともかく)手と頭を動かし、ディスプレイを見つめキーボードを叩いて、あなたはあなたの勇気を作りはじめねばなりません。
仕事というのは、とにかく手をつけなければ終わりもしないわけで(もっとも、じつに悲しむべきことにはどれだけ手を動かしても終わらないこともあるわけですが)、効率をできるだけ意識しながらも最終的には片っぱしからあなたはあなたが必要だとみなしているコードを書いていかねばなりません。

自然なことではありますが、彼が没入しより完全な孤独になっていけばいくほど、ますます彼の視野は彼の勇気の対象であり実践であるコードに集中することになりますが、これは端的にいってより完全な視野狭窄状態に陥ってゆくということでもあります。
そして、その端緒において彼は、まだこの世に存在していない有益でエレガントなコードの成立を夢想し、それがソフトウェアの歴史の一頁を飾ることになる瞬間の光景がその眼前にまざまざと展開され、一種の神の視点に立ってさえいたわけですが、彼の企みが先へ進み、より注力してゆくにつれて、次第にこのようなソフトウェアの歴史を一望するようなかつての視点は薄れ、目の前にはより個別具体的な問題が覆いかぶさってきます。
コンセプトやソフトウェア世界全体における対象の位置づけなどからはじまって、基本的な構成やポリシーの策定、個別のモジュールの仕様の詳細、全体の整合性や調和への配慮、依拠する言語、ライブラリやツール類の選定、その個別具体的な調査、さらには個別の実装のスタイルや部品の共通化、ひとつひとつの処理の具体的な手順、インターフェースとその整合性、ループの最適化やキャッシュや抽象化などによる効率の最適化、デバッギングへと進んでゆくにしたがって、どんどん彼の視野は小さく狭くなってゆくのであります。
そして、無限に連なるか思えるこうした個々の課題の解決の連鎖は、必然的に自身の作業の価値の矮小化や本来の意図の忘却やそこからの逸脱を促進します。
そして、この広くも深くもない眺望が彼を再び不安に陥れるのです。
それは最初期の不安、すなわちこの企てはまったく無益なのではないか、あるいは自分にはそれを為すだけの準備ができているかといった不安とは質的に異なる不安です。
最初期の不安というのは、言ってみれば自身の外なる不安、この溢れんばかりの有益なソフトウェアとハードウェアから構成されているコンピューティングの世界に自らが何かつけ足すことが可能なのか、その資格はあるのかといった不安でしたが、いったん事をはじめてしまったあなたを悩ますのは内なる不安、勇気の営みが正常に進行しているのか、いつの間にか自分はぜんぜん違うことをしているのではないか、いま状況を打開するためにヘッダを書いたばかりのこのクラスは、ほんとうにはじめに思い描いていたものを実現するための一助になるのか、そうではなくて問題でないものを問題にしているのだったり、本質的な対処ではなく新たな副作用を招聘するだけののではないか、それからこのような非常に些細な部分にこのようなコストをかけているというのは勇気の進捗の速度としてはまったく不適切で、こんな調子ではいつまでたってもモノはできあがってこないのではないか、あるいはできあがってきたとしてもそれはあのドッグイヤーが課す厳粛な掟であるところの最適なタイミングとやらを逃してしまっており、やってくるのが遅すぎた男という役回りが自分には割りあてられるだけなのではないか、等々。
あなたの勇気が具体的に形をもちはじめ、視野狭窄が進めば進むほど、あなたはこうした内なる不安を抱えながら仕事を進めなければならなくなるでしょう。

というのも、こうした内なる不安は根のないことではなく、ひとつひとつが実際に問われるに価する問いなのであって、問題はあなたが仕事を速くこなそうとすれば、それだけこれらの問いにいちいち答えているよりも実作業を少しでも進めたほうがマシだということからきています。
そしてまたこの点も実際的なのであって、ようするにこの不安はリソースの不足と進捗状況の遅滞に根があり、そしてリソースが不足していないなどということはありえないので(いったいわたくしたちの勇気の実践にあたって、進捗状況の表現として「遅れている」という以外の状態などありえるでしょうか。
すべての野心的なプロジェクトにこれ以外の形容は不適切だとわたくしなどは思います)、ようするにこの不安というのは逃れがたいものなのです。



というわけで、あなたはこれらの現実的な不安とうまく折りあいをつけてやっていかねばなりません。
そして現実の不安に対処する適切な方法とは、不安から目をそらすことではなく不安を解消することです。

すなわち、あなたのしていることには今なお価値があるか? あなたの今しているそれは勇気なのか? あなたの勇気は今もなお勇気であるのか? これらについてあなたはそれをしている間じゅうずっと、しかも間断なく答えつづけていかねばなりません。
できるだけ素早く、できるだけ正確に。

「ソーシャル・ネットワーク」ではこのシーンは描かれません。
なぜ描かれないのかといえば「ソーシャル・ネットワーク」がこの部分について語る作品でないから、というのがおそらくもっとも簡潔かつ的確な回答なのではないかとわたくしは思います。
というのも、このような不安は、映画(というより物語一般)が古来から延々と語りついできた主題であって、これが意味しているのはまさにこの点についてのみ語るだけでもまるまる一作品になってしまうのであって、中途半端に語るとかえって作品の印象をぼやけたものにしてしまいかねないということです。
「ソーシャル・ネットワーク」は豊かな内容を持ったたくさんのことを言おうとしている作品なので、この不安とその克服というテーマは落とさざるをえなかったというのが、実際のところではないかと思います。
そしてこの判断はきわめて適切であったので、「ソーシャル・ネットワーク」はあのような卓越した勇気(蛮勇)についての作品になっているのです。

そして、まさに「老人と海」の主題もこのあたりにあるのであります。
すなわち、勇気を為す過程で生じる内なる不安とその克服のための実作業こそが勇気と呼ばれる営みの中心なのですが、この過程がその生起時から終末にいたるまでどのような変遷をたどるのかを詳細に検討し、典型化したのが「老人と海」なのです。
サンチャゴはまさに男の中の男ですが、なぜ彼がそうであるのかといえば、すべてのことを難なくやってのけるからではなく、最上の仕事(それは最も困難な仕事ということでもあります)に対して、不屈で、しかも勝利するからなのです。



勇気を為すには、対象に対して自分が見劣りしていないことを幾度も言い聞かせねばならない


とはいっても、この実際上の不安というのは、ほとんど無尽蔵に思えるほどに次から次へと湧いてくるもので、またそのうちのいくつかについては本質的に未決の状態、いま自身が為していることそのものが価値を算定不能にしていたりもするので、そのすべて(あるいは十分な量)を完全な明瞭さの下に裁いていくことはおそらく不可能でしょう。

かくしてあなたは言い聞かせることをどうしてもせねばならない仕儀に陥るでしょう。
つまり、あなたは自分が勇気に価する者であるとか、この対象は十分に素晴らしく畏敬に価するので、これに打ち勝ったあかつきには実際に勇気が為されたことになるに違いないとか、そうしたことを言い聞かせながらやっていかねばなりません。
くりかえしになりますが、ともかく事を先に進めなければ、勇気もクソもないのでありますし、あなたの抱くこの不安というのも、そもそも完全に無価値になってしまうのであります。



かくして、あなたが実際的な不安を強く感じれば感じるほど、実際的な対処としてあなたに可能なのはただ事を先へ進めるということだけになるでしょう。
場合によっては、あなたはもはや意志によって駆動しているのではなく、この不安によって駆動しているということさえありうるはずです。
ですが、たしかにこの不安は本質的であり逃れることは不可能なので、それさえも一種の推進力として取りこもうとするのは、ひとつの対処のあり方として可能なものであるでしょう。
そうです、結局のところ事が先へ進むのであれば、その起源というのはあなた自身からも最終的には問われないのであります。

そしてここにサンチャゴへの参照やザッカーバーグへの参照の意味があります。
わたくしたちが先人の勇気の例から何ごとか学ぶというのに多少なりとも意義があるとすれば、まさにこの自分が見劣りしていないということを自分自身に言い聞かせるためなのです。
あなたは直接的には答えようのない不安、すなわちまだ未確定の未来、まさにあなた自身が目下生みだしている最中である未来、あなたの勇気が為されたあとの未来についての評価というのをなんとかあみ出さねばならず、そうしなければ可能なかぎりの明晰さを保ちつづけなければならないあなたの頭脳はやがて不安でいっぱいになり、ついには一歩も前に進むことができなくなってしまうので、それらに仮に答えておくことによってその問いを先送りし、宙吊りの状態にするのです。
このとき、この仮の答えというのがそれなりのものでなければ、十分に冷静になったあなた、勇気とは何であるかを知っているはずでありまさに自分自身がその実践に身を投じているところのあなた自身がその答えに満足しないので問いは問いのままに留まり、結果としてあなたの行く手を阻むことになってしまいます。
このようなとき、あなたはあなたのよく知った先人の具体的な対処法やたちふるまい、その言葉などを参照することになるのです。
そして、彼らがそうしたように自分もしていることを確認し、あるいは自分のように彼らも迷っていたことを確認し、これらは勇気の過程において必然の苦悩であって、わたくしがこれらにかかずらわなければならないのは、わたくしが勇気の実践に失敗しつつあるためではなく、そうではなくてむしろ今まさに自分自身が勇気の過程に置かれているからこそであるのだ、そう言い聞かせるのです。
この勇気の過程における産みの苦しみという観念があなたを満足させ、不安の源泉をいったん棚上げにして先へ進むことを可能にしてくれます。

再度くりかえしになってしまいますが、事を先へ進めなければ勇気もへったくれもありません。
使えるものはなんでも使ってどんどん先へ進んでいきましょう。
どうやってもすべてが決まるのは、すべてが終わったあとでしかないのですから。


第四回に続きます。
次の記事
« Prev Post
前の記事
Next Post »
Related Posts Plugin for WordPress, Blogger...