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

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

プログラミングと勇気、第四回目です。
おつかれさまです。もうこれでおしまいです。
第一回第二回第三回はこちら。






勇気を為すには、かなり深い傷をそのままにして事を先に進めなければならない


あなたの勇気(いまやそう形容するよりほかに適切な形容はなくなっていることでしょう)が進んでゆくにつれて、すなわちあなたの作るものが具体的になっていけばなっていくほど同時に明らかになってゆくのは、あなたのまさに為しつつあるものがあなたの予期したものよりもかなりみすぼらしいもので、おそらくはまったく不十分なものにすぎないという厳粛なる現実であることでしょう。
あなたのおっぴろげた風呂敷は少々(というかおそらくかなり)大きすぎたのです。

わたくしにその権能はないにもかかわらず、これはある種の高みから宣告せねばなりませんが、もしあなたの為そうとしたものが実際に為しえたものよりもずっと巨大なのでなければ、つまりあなたが思い描いたヴィジョンに対してあなたの為した事があまりに小さいというのでなければ、あなたの為したものというのはおそらく勇気では決してないのだ、ということは厳粛なる真理であることでしょう。

なぜなら、この実際に為された勇気の不十分さというのがそのままソフトウェアの歴史に他ならないというのは、まさに史実のひとつひとつが適切に語るところなわけですし、このことが言っているのは、ようするにこのそれは勇気であるにもかかわらず(あるいはだからこそ)同時に不十分さを帯びているということそのものが、わたくしたちに次なる勇気を可能にするのであり、わたくしたちプログラミングの勇気が先人の勇気の上に構築可能であるということの本質であるということです。



これが具体的な実践の成果であるプログラムにおいてどのような形をとるのかといえば、あのすばらしい TODO ファイルに並べられた長大なリストということになります。
つまり、明らかにやったほうがいいけれども、おそらく必要でさえあるけれども,それは次のバージョンかさらにその次のバージョンか、あるいは実際に存在することはないかもしれないバージョン 1.0 が完成したあかつきには実装されているであろう、というような希望的観測という形をとるのです。

ですが、あなたにはそれを実装している時間はありません。
あなたはまさにその機能が実装される、または呼び出されるべき箇所に、代わりに "TODO" という(わたくしの愛すべきエディタである vim では、あらゆるプログラミング言語で syntax highlight される)キーワードのあとにつづく短いコメントを埋めこんで、あるいはあなたの使用している issue tracking システムにあまり内容を持ってはおらずマイルストーンの定かではないチケットをひとつ追加して先へ進むことになるでしょう。
そして、この TODO のひとつごとにあなたの仕事の完全さはひとつずつ目減りし、より不完全で不十分なものになったことを受け入れるのです。
それは端的にいって妥協であり、妥協というのはいつでもひとつの傷であります。
そして、その傷の深さ、大きさというのは、まさに傷跡を刻んだあなた自身がもっともよく知っていることでしょう。
それはときおり右手が欠けているというレベルであることさえありますが、たとえば右肢のために、あるいは肺のために、あなたはそれをそぎ落とす決断をするのです。
そして少なくとも自力で立ちあがることのできる何ものかを作ることに集中するのであります。





勇気を為すには、限界を超えて忍耐強くなければならない


さて、あなたの勇気の進行というのは、あなたの当初のヴィジョンがじょじょに形を持ってゆく過程ということであり、また同時にそれはその勇気には何が決定的に欠けているのかがますます具体的に明らかになってゆく過程でもあります。
またさらに、おそらくこちらのほうがあなたにははるかに重大なことでしょうが、作業の進捗が当初の目論見よりもはるかに遅いか、あるいは当初の目論見よりも規模がはるかに大きいことが次第にはっきりしてくる過程でもあります。
あなたの勇気は端的にいってやってもやってもできあがらない何か、あなたの手にはとうてい負えない怪物であり、それが次第に育ち、肥えふとってくるように思われてくるのです。
先へ進めれば進めるほど、より大量の、より手の込んだアクロバティックなコードを書けば書くほど、更なる大量のコードの必要性がまさに芋づる式にずるずると引き出されてくる様にしか出会わないので、なみなみならぬ決意の下に事をはじめ、深い傷を追いながらも懸命に励まし獲物を追い求めつづけてきたあなたもさすがに次第にくたびれてくることでしょう。

わたくしはあらゆるプログラミングにおける勇気の実践がこのような事態に出遭うであろうということを、ある高みから予言することをあまり躊躇いません。
そうです、それはみんなそうなのです。
そうでないわけがない。
なぜならそれは勇気なのですから。
あなたの勇気はあなたがそれに価しているかをいつでもいつまでも飽きることなく試しつづけるものなのです。
そうでなければ、あなたのしているそれは勇気とは到底いえない、誰にでもできるちょっとした便利プログラムの範疇を抜けだすことは決してできないでしょう。
ですから、これは勇気の実践が帯びる普遍的性質なのです。



であれば、あなたの為すべきことは明らかです。
すなわち、勇気の課すこのような試練というのは勇気の持つ正当な権利であるので、あなたはそれを受けとめ、実際に克服してみせなければなりません。
あなたの為すものが正当に勇気であることが確定するまで、あなたも飽くことなくあなたには勇気があることを示しつづけなければならないのです。
なぜなら、そうでなければあなたの勇気の実践が実際に勇気であったか、あなた自身が確かめようがないのです。
そうです、プロジェクトが進行し、プロジェクトの巨大さが明らかになればなるほど、逆接的にますますそれはあなたの勇気に価する何ものかであることも明らかになってゆくのであり、実際にそれをうまくやりおおせたあかつきの報酬もより期待できようというものです。
あなたが信じなければならないのは、もしあなたがあなたの当初の目算を誤って定めたのでないならば、あなた以外の誰がやろうともそれは同じように巨大な壁であったに違いなく、あなたが苦労して乗り越えたそれをひとつのパッケージとして github や google code にあげ、それによってあなたと同じ苦労をする者があなた以外にはもう決して必要でない(それは車輪の再発明という愚かな行為だ)というまさにこの事実によって、あなたの勇気は報われることになるということです。
くりかえしますが、あなたのぶちあたった壁はそれが勇気なのであればたしかにユニークな、唯一のもので、あなたが克服すればそれは二度と壁という形を取ることがないということ、このことよりもはっきりとあなたのしているそれが勇気であることを確証するものはプログラミングの世界にはないのです。



というわけで十分に合理主義的であるあなたは、このような定式によって、それが勇気であればあるほど途中で投げだす理由がなくなります。
僭越ながらわたくしもプログラマの端くれであまして他の例にもれず根性論が大嫌いですので、忍耐強さを要求される場合にはそれが正当な、すなわち決して無駄ではない忍耐強さであることが必要だと感じる者ですが、勇気をまさに為しつつあるあなたにわたくしが言わねばならないのは、このような理由にからあなたは限界を超えて忍耐強くなければならないということであります。
そして、わたくしに言わせれば、これは根性論ではまったくなくひとつの筋の通ったまともな取引なのです。
すなわち苦労するのはあなたひとりでよく、他の者はあなたの成果のうえに乗っかるだけでよい、これがもっとも合理的なことなのです。
そしてこの取引のあなたへの対価というのは、あなたの忍耐というのが最終的にはそれが勇気であったのだとあなた自身にも納得のいく形で提示されるであろうということ、ただそれだけです。
逆にいえばそれがふだん言われるような意味での対価をあなたにどの程度もたらしてくれるものか、わたくしには前もって言うことはできません。
勇気の大きさ高貴さと、富や名声といった世俗的な報酬の多寡というのにはまったく関係がありません。
じつに悲しむべきことではありますが、この二つはまったくの独立した事象なのです。
ですがそれにもかかわらずあなたは忍耐強く、それも度を越して忍耐強くなければなりません。
そして実際にそれを為しつつあるあなたを勇気づけるのはこうした報酬への期待ではなく、そのような忍耐を課されるのはあなたでもう最後なのだという犠牲の精神によってはじめて可能になるのです。



このような点について「老人と海」については、特にコメントをする必要がありません。
なぜなら「老人と海」全体がこのような様式について雄弁に語っているのであり、サンチャゴはまさにこのような類の勇気の体現であります。
一方「ソーシャルワーク」についてはこのような価値観はほとんど登場していないといってよいと思います。
なぜこのようなある種の犠牲の精神が登場しないのかといえば、「ソーシャルワーク」がザッカーバーグのそのような側面を切り落とすことによって構成を担保している作品だからです。
すなわちザッカーバーグは傲慢だが才気あふれる若き帝王であり、そのような彼にとっての勇気とは彼の巨大な作品である facebook を彼だけのものとしてひたすらに巨大化させることであり、成長とはすなわち帝王の孤独を知ることであるというのが基本的な作品の構成なので、こうした精神性は座りの悪い異物でしかなったのだと思います。
むしろ、現実のザッカーバーグのほうがこのような価値観を強く打ち出していると言えるでしょう。
非常に好意的に解釈すれば(おそらくあまりに好意的すぎることでしょうが) facebook とはプラットフォームであるというときに、彼が念頭においているのはこのような犠牲の精神であるといえなくもないかもしれません。



勇気を為すには、対象の達成以外のほとんどを削ぎ落とさねばならない


そうしたわけで日に日に巨大に育ってゆくばかりのあなたのコードとあなたのコードの最終形のイメージを前に、あなたはついにいくつかの決定的な妥協を迫られることになるでしょう。
すなわち、あなたのその勇気から手足をもぎ取って、あるいは手足をつけないままにリリースしなければならないことを、あるタイミングではっきりと悟ることになるのです。
あなたのヴィジョンはとてもあなたひとりの手には負えないもので、もしあなたが十人くらいいればあるいは成し遂げられたかもしれないけれども、あなたの手は二本しかなく、あなたの目も二つしかなく、なによりいまやあなたのヴィジョンとその具体的な実装計画でパンパンになったあなたの頭脳というのはたったひとつしかないのです。
それらの細部が詳細に検討され、あとは時間をかけて実装するだけであり、もし十人とか二十人とかの自分のコピーロボットがいればそれは必ず成し遂げられると確信したとき、そのときこそがたったひとりしかいないあなたがその勇気をリポジトリにコミットするタイミングなのです。
それはすなわち、あなたがあなたの実装計画を第一義的にはまったく放棄するということでもあります。
あなたは膨大なタスクの中から慎重に本当に必要なモジュールだけを選びだして実装してきたはずなので、次のマイルストーンの達成をもっていったんの終結とする、そう宣言することはそれほど困難ではないはずです。
いくつか重要な機能の実装はまだでしょうが、それなしでもコードは動くことは動くに違いなく、またもののわかった連中に見せれば少なくとも彼らにある種の可能性を感じさせることができる部分というのはおそらくすでにできあがっているはずです。
そしてそれこそが重要なのであり、おそらくその部分が実際にあなたの勇気なのです。
たしかにいまや完全さとはなんであるかを十分に知っているあなたからすると、それは不完全で不十分なまだ孵化してさえいない卵にすぎないかもしれませんが、もしこれまであなたが適切に苦闘してきたのであれば、それは実際に苦闘だったのであり、もしあなたの目指していたことに価値があり、その価値に忠実にあなたが仕事をしてきたのならば、あなたの為してきたことは他者にはそうそう為しえない何かであるはずであり、したがってその成果をリリースすることにはそれなりの価値があるはずなのです。
その具体的な証というのは先にも述べたように、その苦労をする必要があるのはあなた以後にはひとりもいないというこの素晴らしい予言をあなたが高らかに宣言することができるというこのことそのものが雄弁に物語っていることでしょう。
そして、この一点によってあなたは、あなたの不完全なコードをとりあえずパッケージにまとめてリリースすることを決断するのです。



勇気を為すには、称賛を夢想することはよいが、それを具体的に期待してはならない


さて、そういうわけでリリースです。
もうリリースなのです。
それは出ていってしまうのであり、一度出ていってしまったからには、それはもうあなただけのものではなく、自立したひとつのパッケージであり、みんなのものです。
あなたの勇気が紛うことなき勇気であればあるほど、軽率な者は熱狂をもってそれを迎えいれるでしょうし、慎重な者も興味をそそられ、矯めつ眇めつしてくれることでしょう。
リリースする直前のあなたは、あなたの勇気がそのような賛辞で迎えられる事態をどうしても夢想してしまうに違いありません。
わたくしとしてもさすがに純粋な夢想それ自体を止めろとまでは言いません。
あなたの夢想があなたの夢想として留まっているかぎり何の害にもならないので、あなたのぼやきと同じようにいくらでもすればいいのです。
ですがあなたに許されているのはそこまでで、具体的な称賛を期待してはいけません。
これはあなたの期待が裏切られたときのための精神衛生上の予防策として言っているのではまったくありません。
そうではなく、あなたに対する称賛を期待してはならないのは、ただ単に一度リリースされてしまったそれはもはやあなたのものではないので、賛辞を受けるべきはそのパッケージそのものであって、それを苦労して作ったあなた自身ではないからなのです。

このような見解はおそらくまったく一般的ではないのですが、わたくしとしてはこれも勇気の作法のひとつであると考えています。
すなわち、わたくしが言っているのは次のようなことです。
よいコードは褒められてしかるべきだが、それを書いたよいプログラマが褒められる必要はない。
これはたいへん重要なことなのでくりかえしますが、よいのはコードそれ自体であり、それを書いたプログラマではありません。
勇気の結晶であるコードとはわたくしたちの素晴らしき共有財であり歴史の一頁であって、あなたがそれを書きおおせたのは、あなたの独力では決してなく、先人のコードの蓄積があればこそなのですから。
あなたが期待してよいのは、あなたの勇気の結晶が実際にうまく機能する瞬間であって(それさえも OS をはじめとした、あらゆる先人の勇気の結晶の上で起きる一瞬の火花のような現象にすぎません)、それを作ったあなたに惜しみない称賛がよせられる瞬間ではないのです。

このようなことは「老人と海」にもその主要なエッセンスとして、すなわち勇気がそれが実際に勇気である場合にとられるもっとも適切な様式として提示されています。
そうです、サンチャゴのやり口はまさにそのようなものであったのです。
わたくしとしましてはこの点についてのこれ以上の明確な理論づけはこの場では避けたいと思いますが、ただひとこと強調しておきたいのは、もしあなたが実際に勇気を為したいと願うのであれば、勇気の典型であるところの「老人と海」の様式に従うというのはあながち間違った選択でもないだろう、ということであります。
あなたの為したそれが本当に勇気なのであれば、あなたに対する称賛などなくとも、あなたは十分に誇り高くあれるはずです。

「ソーシャルワーク」のザッカーバーグにおいては、この点はあまり強調されてはいませんが、いくつかのシーンで付随的な要素として提示されています。
すなわち、全体として彼が善人ぶろうとしない点、facebook の拡大には興味があるけれども自分自身の名声にはあまり興味がない点、特に劇の後半において彼が facebook の CEO であるという特権をまったくといっていいほど行使せず、乱痴気騒ぎに混ざらないばかりか、新しい社屋での自身の机はじつにありふれた場所にある普通の社員のデスクでしかない、といった点などによくあらわれているでしょう。
実際のザッカーバーグがどうであるかということについては、あまりよくわかりません。
なにしろ「実際の」という形容を用いて彼について何ごとかを描写するには、彼はあまりに有名になりすぎていますから。




勇気を為すには、成し遂げられた勇気はその場で棄てられなければならない


あなたの勇気は、それがいったんリリースされてしまえば、もうあなたのものではなくなるので、それをもってあなたの勇気の実践も終了してしまっています。
一度出してしまえば、あなたはもはや勇気に参与してはいないのです。
あなたが理解しなければならないのは、今やこのことなのです。
それは決定的に終わってしまっており、すでに決定的な妥協の決断をしてしまっているあなたには、再び同じ勢いをもって、その欠落を補いにゆくことは難しくなっていることでしょう。
そして、今ではすこし前まで自分の熱狂がくだらない、時間の浪費であったように思われてくるはずです。
なぜなら、リリースされたコードはたしかに不十分なシロモノであり、あなたができるようにするはずだったことの数分の一もこなすことのできない小さな小さなものであるにすぎないからです。
そしてまた、おそらくこちらのほうがより大きいでしょうが、それを保有しているのはもうあなただけではないので、あなたはそれを独占することができず、成長の速度は鈍り、さらにはあなたのそれが重要なものであればあるほど、あなたの周囲はそれを放ってはおかないので、最高度の集中力をもってコアのコードを書き紡ぐことに比べれば、はるかにぼんやりした生ぬるい作業であるにすぎない周辺の些事たち、マニュアルの記述や問い合わせへの応対、例外系のテストの拡充や、いくつかの会合でのプロモーションなど、あなたからはどんどん新しいコードを書き下ろす時間が奪われてゆくことでしょう。
そして、このような勇気の実践とはとても呼べない諸般の事情というのが、勇気はすでに過去のものとなり、もはや取り戻そうとしても二度と取り戻せない遠い記憶になってしまったというこの厳粛なる事実を否応なくあなたに教えるのであります。



けれども、このことは一概に落胆するようなことというわけではありません。
もはや勇気に参与していないあなたは、この参与から外れているということと引き換えに、客観的に以前のあなたについて評価し、判断する権利を獲得しています。
そうです、もうすでにあなたは勇気を為すものではなく、それ以外のなにか、過去に勇気を為したものか、勇気を為さなかったものかのいずれかなのであり、これについてはもはや流動的で不確実な未来の予測などではなく、あなたの過去の、ここまで歩いてきた道のりが断乎として語るところになっているというわけです。

さらには、これによってしばらくたてばあなたは次の勇気を始めることができるようになるのです。
勇気というのは、同時に複数を手がけられるほど易しいものであることはないので、もしあなたがいくつもの勇気を為しうるほどに優秀なのであれば、適切な時期に勇気の実践が終了するというのは、ひじょうに重要な性質です。
次の勇気は前の勇気とは似通っているかもしれませんが、やはり決定的に別なものであり、また再びあなたの全力が投入されなければならないのですから。



「老人と海」のこの点については言うべきことはありません。
実際に小説を読むことをお勧めします。
このあたりが「老人と海」のもっとも卓越した、他の作品とは決定的に異なる点であります。
「ソーシャルワーク」についていえば、むしろこのような点が終盤の主要な内容であると言えるでしょう。
すなわち、二十代半ばにして早々に帝王になってしまったザッカーバーグには、勇気の実践以外のあらゆる面倒な些事が覆いかぶさってきており(ちなみにそれにはこの「ソーシャルワーク」という映画作品そのものも含まれているわけですが)、しかも皮肉なことには、これらの些事がますます彼の名声を高めることになり、彼の孤独をより深くより強固にしてゆくのであります。
ちなみに、いくらか前でも述べたことですが、このような記事を書いているわたくしとして断乎として主張しなければならないのは、このような事態が彼の不幸の描写であるのは、facebook を作ったにもかかわらず彼が孤独であり、欲しかったもの(つまりかわいい人生のパートナー)は結局得られなかったという点にあるのではありません。
そうではなく、彼の不幸とは、裁判や乱痴気騒ぎや首切りといったほんらい彼の facebook の発展とはまったく無関係なはずの諸々に彼がかかずらわなければならなくなったということのほうなのです。
ラストの調停の会合のあとで、彼がコードを書くのは、このような虚しさを紛らわせるためであり、決して寂しさからではないのです。



勇気を為すには、その勇気が実際に何であったかを知っているのが自分ただ一人だけであるという事態に耐えなければならない


これまで延々と語ってきたように、勇気というのは、それがプログラミングにおける勇気であれ、他のあらゆる領域におけるそれであれ、他者に認められることによって証明されるような類のものではありません。
勇気はその内奥それ自体によって勇気たりうるのであるし、それ以外に勇気が勇気として成立する経路はないのです。
その実践をひじょうに多くの人びとが称賛した場合においても、知るものがそれを為した者ただ一人である場合においても、勇気は依然として同じ勇気(正しくはその歴史)です。
称賛によって輝くのはこの歴史という付属物であり、あるいはその実践者としてのあなた(これも成立した勇気にとっては付属物にすぎません)になのであって、そこで勇気そのものは無関係です。

この勇気の価値が称賛の多寡に影響されないという性質は、通常の場合、おそらくあなたを慰める方向に働くことでしょう。
というのも、勇気の価値というのはいつでも少しすくなく評価されるものだからです。
いかなる称賛もあなたが勇気を為したということこの歴史そのものほどには、あなたを誇らしくすることはできないでしょう。



もちろんわたくしは、あなたには正当な称賛を要求する権利がないといっているわけではありません。
ただ、この種類の権利は行使されることがないときにもっとも価値があるのであって、あなたがそれを行使するたびに、勇気の歴史の価値は切り売りされ、その分だけ目減りしてゆくことになると言っているのです。
この点は次のような奇妙な捻れを生じさせます。
すなわちあなたがその勇気の価値を目減りさせないよう、それを大事にすればするほど、ますますあなたはあなたの勇気を独占する必要が生じてくるわけですが、これは端的にいって称賛を拒絶したがほうがより勇気の純度が保たれるということになります。
そして、これは実際に一面の真実であるのです。
人びとが勇気について語れば語るほど、そこで語られる勇気の歴史というのは、勇気そのものは乖離して、何か別のもの、もっとよいものである場合もあるけれども、大抵の場合はより混乱し猥雑で明確さと簡潔さを欠いたものへと変質してゆくのです。

じっさい、サンチャゴのディマジオへの参照は、実際にジョー・ディマジオの偉大さと比べた場合、ひどく薄っぺらで皮相的な内容しかもっていません。
なぜなら、サンチャゴはベースボールの内奥を知らないし、また知る必要もないからです。
それにもかかわらず、サンチャゴは自らの実践にあたってディマジオの姿を参照し、それによって都度、己の姿勢を評価し修正することができたわけなのですが、それはともかく、結局のところ他者の勇気の実践の歴史というのは、せいぜいのところそのような形で利用するくらいしか使いでがないもので、称賛というのはあくまでもそのような段階に留まるものなのです。



さらにいえば、プログラミングにおける勇気の実践というのは、その手続のひとつとして明確にリリースという作業が含まれているので、このような事情に対する配慮があなたを悩ませることはないでしょう。
つまり、出さなければ勇気は完遂されないので、あなたはどうでも出してしまう必要があるのです。
そして、プログラミングにおいてはその成果をあなた以外の誰かが触ったそのときに始めて(そして、それ以後はくり返しくり返し無限に正確に)、勇気が勇気として完結し、その円環を閉じることになるのです。

したがってあなたが怖れなければならないのは、あなたの勇気の結晶がその価値ほどに評価されないという事態で、これはプログラミングにおいては勇気の完結が失敗しているというわけで、ひじょうに由々しき事態でもあります。
つまり、あなたはそのような事態に耐える覚悟が必要ですが、プログラミングにおいてはこれは基本的に失敗を意味しているのであり、したがってそれは勇気としては不十分なものになるのだ、ということは言えるでしょう。



勇気を為すには、疲れきって戻り、泥のように眠らなければならない


これについてはあまり言うべきところはありません。
あなたの為したそれが実際に勇気であったとき、自分の住処に戻ったあなたが欲するのは、何よりも十分な睡眠、不安を欠いたもっとも良質の睡眠をのぞいてはありえないことでしょう。
そこではあなたが夢を見ることを好む性質であるならば幸福な夢が与えられるでしょうし、そのような趣味がなければ純粋な時間の途絶がもたらされるでしょう。
まったくこれに勝る報酬はありません!



さて目覚めたあなたは次の勇気の機会が巡ってくるまで、またいつもどおりの日々を送ることになるでしょう。
あるいは、勇気とそれがもたらした名声はあなたのおかれた状況を劇的に変えてしまっているかもしれないので、次の朝からはあなたにとって新しい生活のステージが待ち受けているかもしれません。

ですが、これらの勇気の次に来るものたちというのは勇気そのものとはまったく関係のないことですし、市中に氾濫するあらゆる種類の成功譚とその後日譚が雄弁に物語っているところでありますので、ことさらわたくしが何かをつけくわえて言うべきことはありません。
わたくしに言えるのは、この記事のはじまりの定式、すなわちプログラミングにおける価値とは勇気を為すことだ、というのが正しいのだとすれば、それはあまりプログラミングとは関係のないことであろう、といったぼんやりした予言がせいぜいのところであります。
つまり、ずいぶんと長くなってしまったこの記事もそろそろ終わりが近づいてきているというわけです。



勇気を為すには、勇気とは過程であり、結果でも歴史でも精神性でもないことを正しく知っていなければならない


このようにして、勇気とはそれが終わってしまえば、あなたからは決定的に離れて歴史に所属する事がらになってしまい、代わりにあなたに与えられるのは、称賛や無視や、勇気の記憶や次のステップといった勇気では決してない何ごとかであるわけです。
すなわち、勇気とはただ過程なのであり、結果でも歴史でも精神性でもありません。
わたくしの理解が正しければ、勇気とはそのようなものなのであり、これこそが「老人と海」の全編がそのミニマリズムによって語りだす主題であるのです。

このことが意味するのは、一般にいって、わたくしたちが勇気について何ごとかを語る際のその語りの内容というのは決して勇気そのものではないということです。
それはレプリカか、せいぜいのところその剥製にすぎない何かであるにすぎず、勇気のもっとも重要なエッセンスであるところの、最高度の集中、最高度の熱狂、そして何より最高度の価値の生成といった性質がそこからは失われてしまっています。
わたくしたちプログラマにおける勇気も無論このような事情から免れるわけにはいかないわけですが、比較的めぐまれているのは、わたくしたちの勇気の実践というのは、そのまま実行可能なコードとして残るので、いつでもくりかえしくりかえし、その結晶が同じ内容をもって動作するという点です。
つまり、あらためて勇気の内実を歴史として記録しなおすという作業は必要なく、勇気の記憶は(少なくとも新しいコードにすげ替えられないうちは)正確に当時のまま残りつづけることになるのです。
実際のところ、これはある種の慰めにはなるでしょうし、それ以上に素晴らしいことは、この勇気の記録がそのままのかたちで次の勇気の基盤になりうるという点です。
この点はプログラミングにおける勇気があらゆる人間的勇気と決定的に異なる点でしょう。
人間は、新しい世代に交代するたびに、再度一から教育しなおさなければならないわけですが、プログラミングにおいてはそんなことはありません。
わたくしたちは純粋に上にひとつ積み重ねることができるのです。



おそらくこれが20世紀後半から21世紀前半にかけて、コンピュータシステムの発展がほぼそのまま時代の推進力でありえた主たる要因であったとわたくしなどは認識しているわけですが、今後もそうであるかはいくらか流動的であることでしょう。
というのも、コンピュータというのはあくまでもデジタル化された情報しか取り扱うことはできず、わたくしたちの暮らすこの現実の物理世界のすべてを取り込むことはないし、またそんな必要もないものだからです。
わたくしなどは、むしろこのデジタルということ(つまりノイマン型であるということ)の純粋性はひとつの完全さであるとみなしておりますが、このような話題というのはこの記事の主旨から大きく逸れる巨大なテーマですので、わたくしとしてはただ、押井守による攻殻機動隊の諸作品が提示したイメージの適切さと、このデジタル世界というのが、わたくしたちプログラマの勇気の結晶の堆積であるという点を指摘するに留めたいと思います。



さて、いかがでしたでしょうか。
語り残したことは多いのですが、特に、複数人の実践者からなるプロジェクトというのがどのようにして勇気に参与しているのか、といった問題については、この記事ではほとんどまったくといっていいほど触れることができませんでしたが、ずいぶんと長くなってしまいましたし、基本的に単独のプログラマとして活動し、協働はむしろコミットしたコードベースという事態が多いわたくしといたしましては、もちろんこれはこれで正当なスタイルであると信じてはおりますが、チームとしての勇気といったひじょうに重要なテーマについて何ごとかを語る資格も能力もあるとは思えません。
また、優れたソフトウェアの通常のライフサイクルにおいては、この記事において勇気の結晶であるところの初期バージョンというのはあくまでも端緒にすぎず、これがベースとなって、次なる勇気を触発し、それがまた次の勇気を、といったひじょうに理想的な正の循環を形成してゆくものなのですが、このような点につきましても、基本的に雇われプログラマの域を出たことのない、勇気未満の無価値なプログラマのひとりであるにすぎないわたくしにそのダイナミズムの詳細を語るのは手に余ることですので、とりあえずこれで終りにしたいと思います。



また、プログラミングにおける勇気の表現様式としてのミニマリズムの持つ意義について、小説におけるそれ、あるいは映画におけるそれとの対比、類比などを通して考察する、さらにはプログラミング言語の設計思想とミニマリズムとの関連性、といったこともぜひ考えてみたかったのですが、これについても別途機会があれば、ということにしたいと思います。



それから最後の数節は、通常のプロジェクトやそれよりもう少し大きな枠組としてのスタートアップといった、シリコンバレーや MIT などを中心とする米国的科学至上主義の価値観や市場主義経済のメソッドとはかなり異なる、というか明確に対立しさえする定式であるので、違和感をもたれた方もおられると思います。
ですが、この記事においてわたくしとして言いたかったのは、このような点において勇気と成功とは明確に異なる概念であり、さらにプログラミングの実践において真に価値があるのは成功のほうではなく、勇気のほうにあるのだ、といったわりと単純な価値観であったりします。

プログラムを書くのに、それをやったら誰々から褒められるから、それどころか多量の金銭と名声とが得られるから、とかいった動機は必須ではありません。
プログラミングとはわたくしたちプログラマの生活においては、もっと単純で基本的な行為であり、わたくしたちがそれをするのは、第一義的には報酬のためではなく、作業それ自体が歓びであったり、あるいは作りだされたプログラムが単純に役立つからであったりします。
わたくしに言わせれば、そこでもし金銭とか名声が必要なのだとすれば、それはわたくしたちがプログラミングによって生計を立てる必要があるからだというにすぎないのです。
そしてこのようなファイナンスの問題というのは、プログラミングの実践において中心的な問題であったことは一度もなく、おそらくこれからもありえないでしょう。
このことが意味しているのはそんなに多くはなくて、たんにファイナンスの問題があなたのプログラミングを促進することはないのですし、もしあるとしてもそれはあまり良質の燃料とはいえないだろうといったことです。
あるいは、愛用のエディタを開いて今まさにプログラムを書きはじめるところのあなたの背中を押すのは、名声への欲望や金銭的充足への欲求ではなく、勇気の実践への端緒が与えられるあの輝かしい一瞬にあなたの眼前めいっぱいに拡げられるであろうソフトウェアの連綿たる歴史の新たな一頁というヴィジョンであるはずだということです。
そして、それさえあればプログラマというのは己の勇気の実践を始めることができるし、たとえその完遂がきわめて狭き門であるとしても、実際に困難を乗り越えてそれを達成する者が出るだろうし、今後もそれは変わらないだろうということです。
わたくしはそれを知っています。
なぜなら、わたくしたちの目の前にはいつでもこのプログラミングにおける勇気の偉大な歴史そのものであるところの有用なソフトウェアがあり、わたくしは日々それに触れているけれども、わたくしが使うソフトウェアたちは決してわたくしに称賛を要求したりなどはしないのですから。



これを書かせてくれたアーネスト・ヘミングウェイ、デヴィッド・フィンチャー、アーロン・ソーキン、それからモーリス・ブランショに感謝します。


次の記事
« Prev Post
前の記事
Next Post »
Related Posts Plugin for WordPress, Blogger...