Sep 12, 2023

オープンソースの何が自分にとって楽しいのか

「なぜ自発的にOSSやってるの?」という問いへの答えは十人十色だと思うけど、自分の場合は「ヴィジランティズム」が一番大きいんだと思う。

 

僕のヒーローアカデミア」のスピンオフの「ヴィジランテ-僕のヒーローアカデミアILLEGALS-」で知ってる人も少なくなさそうだけど、ヴィジランテとはアメコミヒーローものの中にある概念だそうで、訳すと自警団。
警察に頼らず民間人が自発的に悪人をどうにかしようというやつで、個人の大富豪が警察に頼らず活動してるバットマンなんかは、かなりヴィジランテっぽく思えるけど、彼は悪人をとっ捕まえた後警察に引き渡して裁きを公権力に委ねてるから「ヒーロー」の括りになるそうな。
それに対して、悪人をそのまま自己判断で痛めつけたりブチ殺したりすると「ヴィジランテ」で、大量殺戮まで行くと「歪んだ正義で暴走したヴィラン」、という感じの線引きになるらしい。

僕は子供の頃から、買ってもらったゲームとかオモチャとかのパッケージに入ってる葉書にびっしりと「ご意見」を書きまくって送るようなタイプだった。
「僕のこの素晴らしいアイデアを取り入れるべき! 何故そうしないの?」と考える、今思えば非常に傲慢でウザイ種類の客。
子供なりに、言っても聞いてもらえやしないんだなとだんだん理解してきて、中学に上がる頃にはもう、そういう行動は取らなくなってたと思うけど。
世の中の物や事に「なんでこうなってないわけ?」とイラつくことは依然としてずっと続いていた。

高校の頃、すみけんたろう氏の「スタイルシートWebデザイン」の洗礼を受けて、いわゆるテーブルレイアウトに対する、HTMLとCSSによるデータ本体とその見せ方の分離という技術に感銘を受け、当時のIE4やNetscape Communicator 4のCSS2実装の残念さに失望していた頃に、Mozillaブラウザー(後のSeamonkey、Firefoxの前身)を知った。
最新の開発版を自由に使える事、第三者が拡張機能で機能を増やせる事、それらがXMLとCSSとJavaScriptで書かれてる事を知り、「自分が今入れ込んでる物の未来の姿と思っていた物がもうあったんだ!」と興奮したのを覚えてる。
それと同時に、心のどこかで、「本格的なプログラムの開発って別世界の事だと思ってたけど、もしかして、これなら自分にも関われるのかも?」という気がしていた。
実際に他の人が作った拡張機能を使っていて、それがMozillaブラウザーの更新で動かなくなった時に、「動くように自分で直してみよう」と思えたのは、そういう理由からだったのだと思う。
そうして自力救済して、どうにか上手く動かす事ができ、新しいバージョンのMozillaブラウザーに対応した改造版として、ライセンスに従ってオープンソースのソフトウェアとして再頒布した、というのが自分にとっての初めてのオープンソース活動だったと思う(後のコンテキストメニュー拡張)。

それ以後も僕は、「自分だったらこうするのに!」を、ややこしい手続きだの交渉だの説得だの無しに、力業で自力で実現できる、という事を一番の楽しみに、拡張機能の開発を重ねていった。
当時の拡張機能(XULアドオン)は、実質的にMozillaブラウザーやFirefoxに対する動的なパッチだったのもあり、開発にはundocumentedな内部のAPIを色々使わないといけなかったので、分からない事があったらブラウザー自体のソースコードを読み漁った。
プロの仕事に学び、いい所をつまみ食いさせてもらい、その成果に乗っかる形で、「自分の考えた解決方法は、こう!」という物を形にしていった。
最新のWeb技術仕様がブラウザーベンダーによって実装されるまで、指をくわえて見ている事しかできなかったのが、自分で実装する側に回る事ができた。
「ソフトウェアに文句がある? だったら勉強して、いい大学出てメーカーに就職して、話はそれからだね」と門前払いされることなく、学生の身分のままで、直接的に世界を変えられる事が、僕には嬉しかった。
僕がオープンソースや自由ソフトウェアといったものの理念をきちんと理解したのは、そういった活動の果てに職を得た後からだった。

オープンソースの良さについて、「みんなで開発できるのが素晴らしい」と考える人は少なくないと思うけど、僕にとっては、「みんなで開発」は、突き詰めれば最優先事項ではない。
自分自身がオープンソース開発プロジェクトのオーナーではあるし、コントリビュートもしてもらってるけど、基本的には我が強いので、合議制で運営するプロジェクトを自分で立てようという気はあまりない。
「問題が解決されて欲しい」が一番の関心事で、「他の誰もやってくれなくても、やろうと思えば自力救済できる。やれる権利がある人が限られていて、自分には権利がないから諦める、という事をしなくていい」があるから、僕はオープンソースを、より正確には、自由なソフトウェアを、よい事だと感じて人にも薦めたく思ってるんだと思う。
そういう感じなので、僕にとってのオープンソースの最も面白い所は、ヴィジランティズムを思う存分発露できることなんだと感じてるのです。

そんな風に考えてるから僕は、「オープンソースとは、GoogleとかFacebookとかMicrosoftとかの大資本が、優秀な頭脳をかき集めて作る物で、我々一般人は下賜されるそれをありがたく使うだけ」みたいな風潮が好きじゃない。
もっと身近な所で、指に合わないペン軸にテープをぐるぐる巻きにして太さを調節するようなレベルで、自力救済の道が開かれてるものだよね? なんで自分で線を引いて退いてしまうの? と思ってる。
その自力救済の結果が他の人にも有用そうならシェアするし、そのソフトウェアの全ユーザーにとって有用そうなら本体に取り込んでもらうことも試みる。
そうして社会の中の「なんだこれ……(イラッ)」を減らしていきたい、という思いがある。

「人の役に立つ、困ってる人を助ける」ヒーロー願望を手近な所で満たせるのが、オープンソースのいい所なのではないか。大企業に所属できてなくても、褒められて承認を得られるのがよい所なのではないか。だから、ヒーローに憧れていた自分はオープンソースを「楽しい」と感じられてるんじゃないだろうか。
という事を最初思ったけど、でも、社会に特に褒められないニッチで「俺得」な物でも自分は全然やってるよなあ? それに、既存のプロジェクトに外部協力者としてその場限りの協力はよくしてても、継続してプロジェクトのメンバーになろうとはしてないよなあ? それどころか、プロジェクトの方針が合わなかったらforkも厭わない方だよなあ? あんまりお行儀よくないんじゃないか? と思い直して、よくよく考えたらそれはヒーローじゃなくてヴィジランテの方なんだな、と改めて気付いた感じです。

正確な言い方を心がければ、学習できる自由や手を加えた成果をシェアできる自由といった所に価値を感じている僕の立場は、「オープンソース」よりは「自由ソフトウェア」寄りのスタンスだと思う。
「オープンソース」はあくまで、建前としては「より良い・高品質なソフトウェアを作るために、ソースコードを公開する」という趣旨なので(例えば合議制も、個人の暴走でユーザーを振り回さないとか、よりプロジェクトの持続性を高めて堅牢にするとかいう形で、品質を高める事に寄与すると言えるだろう)、そういう趣旨とは本質的には関係のない部分を推していながら「オープンソース」と言うのは、我田引水というか、ブランディングの剽窃というか、そういうものにあたるような収まりの悪さはある。
とはいえ実際の所は、「自由ソフトウェア」の政治臭さとビジネスの食い合わせの悪さを回避するために、思想を抜いて脱臭して作られたのが「オープンソース」だ、という理解の仕方を僕はしているので、そういう無味無臭の所にいろんな人がいろんな思想を投影してしまうのは、致し方ない事なのかもしれない。

こういう自助努力での自己解決は、穏当な表現ではよく「DIY」と言われる気もする。
ただ、自分の場合はもう少し、義憤寄りの感情が強い気がして、それで「ヴィジランテ」がしっくりきたのかもしれない。
まあ、単に格好付けて言いたかっただけなのかもしれない。

 

何故急にこんな話をしたのか? というと、卒業生のレベルが高いことで知られるプログラミングスクールのフィヨルドブートキャンプさんが、受講者が途中離脱せずもっと完走してもらえるようにするための動機付けに「オープンソース活動の楽しさ」を伝えるのが有用ではないか?と検討されていて、じゃあ自分にとっての楽しさの源泉は何だったんだろう?と考えたからだった。
それで、つい先日のOSS Gateワークショップの雑談時間で話してたことを整理してみたら、こうなった。

ここで長々書いたのはあくまで「僕の場合は」という話で、人によっては、「コミュニティ活動が楽しい」とか「みんなでワイワイやるのが学園祭の準備っぽい」とか、あるいは「みんなで力を合わせてよい方向に進むのが楽しい」とかに最も関心がある場合もあると思う。
自分も、それが一番大事だとまでは思っていなくても、そういうのが楽しいのは同意できる。

ただ、僕が意義を感じてる物が「オープンソース」よりは「ソフトウェアの自由」の方っぽいというのと同じように、「みんなでやる」のも実は「オープンソース」とは独立した概念で。
僕自身もついつい、「オープンソース」と「みんなでやる」を関連付けて語ってしまいがちだけど、本来は、そういう性質は「バザール開発」とか「オープンな開発体制」とか呼ぶのが正確だと思う。
実際に、「オープンソース」でも「開発体制はトップダウンでクローズド」だ、という例はたくさんある。
なので、「オープンソース=開発体制もオープン」と思い込んだままでいると、そうでない例に遭遇した時に戸惑いそうな気はする。

ただ、「楽しい仲間がいる」ことでよりのめり込んでいく、離脱しにくくなる、ということは実際にあると思う。
フィヨルドブートキャンプの受講者の人が、オープンソースの開発プロジェクトにおけるオープンな開発体制や、オープンなコミュニティに触れて、そこに関わる一員という意識が芽生えて、無理なく課題を完走できるようになるのなら、それは良い事だと思う。
僕の思う楽しさである所の「自分で世界を変えられる事」も、「スクールを卒業して、良い企業に入るのを待たなくても、今の(受講中の)うちから世界を良くする事にコミットメントでき、やりがいを得られる」という事に繋がれば、より離脱率を下げる事に繋がるんじゃないだろうか、と思ってる。

 

以上、Xに書いたことの加筆修正版でお送りしました。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能