こんにちは、READYFOR でエンジニアをしています @otaizo です。
今年もこの時期がきましたね。この記事は READYFORアドベントカレンダー2022 、15日目の記事(のようなもの)です。
いたらぬ先のお詫び ー まえがきに代えて
この記事のタグに「愚文」と付けていることから察せられるように、この記事は読んでいただいている方にとってほぼ役に立ちません。与太話です。これは私のアドベントカレンダー記事における例年の傾向通りでありまして、技術的な示唆に富んだきっかけに触れることを期待している人にとってはとても退屈で、期待外れで、なんの意識の向上感も提供できないものです。ごめんなさい。
ただ、師も走る忙しいこの時期、みなさんは高速道路を使って世に言う「XX進行」の真っ只中にあるに違いなく、さながら道行の途中にあるパーキングエリアかのようにここでちょっと一息ついて、また明日からの全力疾走に向けた一服の清涼剤にならんことのみを思い筆をしたためる次第です。まだ休憩をとるタイミングではない、と感じる方はどうぞ遠慮なさらずこのパーキングエリアはスルーして本来の高速走行を続けてください。
リチャード・ストールマンという人
今からン十年前、以前勤めていた会社に、かのリチャード・ストールマンがやってきて何人かの同僚エンジニアと共にしばしの間いろいろお話する機会がありました。当人を知らない方のためにちょっとだけ補足説明をすると、この人はあのGNUプロジェクトの創設者・主宰者である伝説のハッカーでして、「ソフトウェアはなんぴとも自由に利用・再配布・改変できなくてはならない」という思想のもと自由なソフトウェア(フリーソフトウェア)の礎をきづいた人です。
当時の私は、稀代のハッカーである彼と直接話ができたことと、彼の産物である各種ソフトウェアツールを得意げに利用していたことに興奮気味だったのですが、今思えばこのGNUプロジェクトこそが今日のオープンソフトウェア(OSS)全盛の文化の出発点だったに違いないと思うのです。
今時のソフトウェア開発では、多くの開発ツールや便利なライブラリをほぼ無償で使うことができます。実際、多くのソフトウェア製品や企業や組織におけるソフトウェアプロダクトはこれら無償の開発ツール、開発環境、ライブラリ群を使ってつくられています。
ソフトウェア開発のローコストな道具立てが充実してきたことだけではなく、このことは人々がソフトウェア開発シーンへ参加する際の壁をとても低いものにしてくれました。コンピュータの中で動作するなんだかわからないものがハッと目を見張るような素敵なものを見せてくれることに興奮し興味を持ち、その「なんだかわからないものは何?」「知りたい!」「私も作ってみたい!」「こんなの作って誰かに見てもらいたい!」と思う老若男女すべての人は簡単に(低いコストで)この世界に飛び込むことができるようになり、その結果ソフトウェアプログラムを書く人の人口は爆発的に増大しました。
入手できる道具と参加する人が増えると、成果物を作成する方法がかわります。アイデアの創出やコードを書くことは今やたくさんの人たちによる発表・批判・議論・修正といったサイクルを通して一人の力ではおよびもつかなかった質と量が共有されることになりました。(これには道具や人の増大に加えてインターネットの発明と普及が関わっていますが、話が長くなるのでここでは触れません。)
こうして、以前では考えられなかった質と量のソフトウェアが多くの人たちの目に触れることになりましたが、特筆すべきは、こうして作られた個々のソフトウェアはまたそれ自体が無償(もしくはとても低いコスト)であることが多く、世に出るソフトウェアの数は指数関数的に爆発しました。
「理にかなっている」ものが生き残る
ここまで述べてきたことはいわば「受け売り」の範疇を超えるものではありません。多くの人が「そんなこと知ってるよ、自慢そうに話すな!」と思われるでしょう。はい、その通りです。私もソフトウェア開発世界の移り変わりの歴史を話したかったわけではありません。
こうして今や、ソフトウェアは「多くの参加者」により、「豊富な(コストの低い)道具」と「速いコミュニケーション手段」で短期間に作り出すもの、という図式が定着している気がします。これは、家やビルなどの建造物や電気機器、自動車などのおよそ人類の文明の基盤になっている「人工物」の創造がたどってきた道とほぼ同じだと思います。そりゃぁソフトウェアも人類が作り出す「人工物」であることは確かですから、同じ道をたどることになんの不思議もありませんね。さらにいうなら、人工物を作る方法はいつだって「合理性」を判断基準にして変化しています。つまり、その変化は「理にかなっているかいないか」で判断され取り捨てされるのです。その意味で今日のソフトウェアを作る方法は「理にかなっている」のです。「なるべくしてなった」のです。もちろん「合理性がある」という判断は、それを裏打ちする「事実」があってのものです。「ビルはコンクリートで作る」ということの合意性(丈夫、暖かい、安い、などなど)は、「コンクリートが発明されて存在する」という事実があって成り立ちます。無償のソフトウェア開発ツール群と豊富な人的リソースがなければ今のソフトウェア開発の方法は違ったものになっていたかもしれませんね。
なにはともあれ、今日のソフトウェア開発の方法は合理的である、すなわち、今日わかっている事実に裏付けされた理にかなった方法であるということです。「あらかじめ用意されている、入手が容易でローコストのツール群を利用すること」はコストの低減化と開発時間の短縮化の観点からみても理にかなっています。「多くの参加者によるチーム形成や頻繁で速いコミュニケーション」は多くのアイデアの創出とモアベターな結果への収斂の観点、責任の量を個人の許容範囲に収納できる観点などからみても理にかなっています。リチャード・ストールマンに端を発する「獲得した知見や導入したテクニックをすべて白日の元に晒して共有すること」は、参加している個々人の経験と成長の促進、さらなる新しい知見の発見の観点からみても理にかなっています。素晴らしい!こんな合理的な方法の中で活躍できる参加者たちは祝福されているに違いない!理不尽なことに苦しむこともなく、参加者相互に認め合い、切磋琢磨しあい、成長していく。未来は明るい!!・・・しかし・・・
錬金術師たちに会いたい
この頃ふっと思うことがあるのです。「お前は、この合理性の結果に100%満足しているか?」「お前の人生をより楽しく、良きものにしているか?」と。
先日ある人から「長くソフトウェアエンジニアをやっているようだが、”今”と”昔”とどっちが楽しかったか?」と問われた時、「ウッ・・・」と返答に詰まりました。頭では「"今"に決まってる。家内制手工業のような昔になんか二度と戻りたくない」と思っているはずなのに、スッと言葉を返すことができませんでした。
その後、このことを少し考えてみたのですが、突然、「合理性」というどこからどうみても栄光の輝きを身に纏ったいわば世界のスーパーヒーロの、人にはあまり見せることのない陰湿で小狡い顔を一瞬ですが垣間見た気がしたのです。でも、その顔はすぐに見えなくなりました。「うん、やはり”今”の方がいいに決まってるなぁ・・・」と。
長々と書いてきましたが、この記事で私が話したかったことはこのことです。どうも世界の一等審判者は「合理性」だけではないようだと思ったのです。「誰にも教えない秘密」「公然の理にはかなっていない論理」「なぜかはわからないがうまくいくことを知っているやり方」「魔法の呪文」「多分多くの人からは反対されるであろう自分の物差し」それらを総称してどう言うのかは今のところ思いつきませんが、あるものは「神秘性」、あるものは「倫理性」、ときに「人間性」などという曖昧な言い様でしょうか、平たくいうと「世界にはいまだに多くの錬金術師がいるのだ。そして錬金術師というものたちは総じて胡散臭い顔つきをしているものだが会ってみて損はないかもね。」ということでしょうか。錬金術を完全に排除して世の中は成り立ってはいない。いや、排除しても世の中は成立するけど「幸福感」とか「高揚感」とかといったワクワクドキドキが少なからず欠如した少し空虚な感覚を感じるのです。いえ、私は決して懐古主義者ではありません。むしろ未来に限りない希望と憧れを抱くものです。それもよくある自然への回帰的な未来ではなく、進歩し続ける眩しいほどの文明に抱かれた未来を。「生まれ変わったら屋久杉になりたい」というのが私の口癖で、それは、人間には果てしなく遠い将来をもこの目で見ることができるからに他なりません。
いたらぬ後のお詫び ー あとがきに代えて
ほら、やっぱり与太話でしたね。あまりにも恥ずかしく、あとで読み返すことはないでしょう。できれば今ここで削除して綺麗さっぱりナシにしたいところなのですが、何かもっと有用なことに書き直す時間がありません。カレンダーの今日の枠を空にするほど度胸がありません。お許しください、ごめんなさい。
ちなみに冒頭で登場したリチャード・ストールマン(世間ではRMSと呼ばれています)ですが、結構変わった人でした。会ったときの服装は、Tシャツにボロボロのジーンズで(それ自体は当時のハッカーのイメージそのもので違和感はないのですが)、会社(一応千人規模の結構大きな会社)のオフィス内では(トイレ内も含めて)終始ハダシでしたし、ジーンズの後ポケットには年季の入ったソプラノリコーダが刺さっていたのを覚えています。彼は私の今までのソフトウェア人生の中で3本の指に入る尊敬に値する人です。
最後に一つ恥ずかしい話をして今年の与太話を終わりにしようと思います。
そこそこの年月を過ごしてきた私の生き方の方法も、私の中での「合理性」という物差しに依って当然変化してきました。でもこれから過ごすであろうそんなに長くはない将来の時間の中でも決して変わることのない私の「魔法の呪文」は、"私のたった一人の大事な人が幸せだと感じるように”です。
明日はフロントエンジニアの@randy39さんが投稿予定です。お楽しみに!