Rubyはメソッド呼び出しのときに、クラス階層をメソッドを探して、見つかればメソッドキャッシュに格納する。ここで見つからなければ、見つからなかったという情報もキャッシュに載せておけば失敗についても何度も探索する必要がなく、 method_missingを多用するプログラムが高速化する、かも、と考えた。
で、じゃあ原稿も一段落ついたし、ハックしてみるかとソースを見たら、なんともうできていた。びっくり。小人さんの仕事か。
cvs annotateの結果を見るかぎり、やったのは7年前(!)の私のようだ。
まあ、同感だ。
ひが氏によると,オープンソース・ソフトの開発者に共通した悩みは「開発の時間が取れないこと」。たいていは,休日や仕事が終わったあとにオープンソース開発を行うことになる。一方,ソフトウエアをユーザー企業に安心して使ってもらうためには,そのソフトウエアがデイ・ワークで開発されている必要がある。ユーザー企業は,24時間サポートなどによる安心感を求めるからだ。
ところが「(開発者が所属する)企業がオープンソース活動を仕事として認めてくれることは基本的にない」(ひが氏)。オープンソースの世界でどんなに有名になっても,企業は興味ないからだ。この問題を解決するには,プロダクトと自分自身の知名度をアップさせる必要がある。要するに自分が「有名人になる」(同氏)のである。そうすれば,企業側にとっても“広告塔”としての意味が生まれ,中途/新入社員が採りやすくなるというメリットが生じる。ただし,「有名人を目指すことはあくまで手段であり,目的ではない」と同氏は釘を刺す。
まあ、確かに「Rubyの開発者」として認知されることで、普段からRubyの開発していられるようになったものなあ。
前の会社のときには時間はとられるくせに、認めてはもらえないから完全に二重生活。
「有名人になる」ということが個人的な経験を語る文脈でならばその通りだと思う。まつもとさんが以前「立て万国のプログラマ!」みたいなことをいっていたけど、それができる人は別に呼びかけなくてもやっていけるだろう。僕らはオープンソースをやり続ける社会的環境をどう作ってあげるかを考える立場にいるんじゃないかと思うのだが。どうだろうか。
「オープンソースをやり続ける社会的環境」ですか。
オープンソース開発者は二分化しつつあって、「仕事としてオープンソースを行う」人の割合がどんどん増えてます。この人たちは仕事なんだから社会環境としてはそれでいいと思います。
問題は、一昔前の私たちと同じような「好きで開発している人たち」をどうするか、ですよね。
下手な支援は自由な立場をスポイルしちゃうし、仕事にすればよい、という人たちばかりでもないし。
現時点ではそういう人たちの生活の心配を減らす有効な手段は「有名になる」しか思いつかないです。経験から言えば、これはこれでしんどいんですが...。
私は逆で好きで開発している人は、それでいいと思います。好きで開発しているんだけど、仕事としてやりたい人の環境をどのよに作っていくがという立場です。それはビジネスとして成功するしかないというのがわたしの第一次近似です。
たぶん、よしおかさんと私の言ってることはあんまり変わらないと思います。
私の「好きで開発している人たち」と「好きで開発しているんだけど、仕事としてやりたい人」はほぼ重なってると思います。
自分のソフトウェアを使っている人が増えてくると片手間ではすまなくなって、「好きで開発してるんだけど、このままだと破綻しそう」な人たちをどうするかですよね。世界中にユーザがいて、メーリングリストが日に100通とか、趣味でカバーできる領域じゃないです。私にしたって1997年に、ここのネットワーク応用通信研究所が拾ってくれなかったら、いったいどうなっていたことか。
私が気にしているのはそういう人たちです。
まあ、世間的に必要とされているソフトウェアでも、開発を始めてくれる人がいるとは限らないわけですから、そこへの支援(とか方向づけ)も必要だと思いますが、それはまた別の話としましょう。そちらはそれこそIPAの「オープンソースソフトウェア基盤支援事業」のようなものがカバーするんでしょうし。