Kは何のためにソフトウェアを作るのか
(0)
- 「自分はなぜソフトウェアを作るのか」ということを自問して、自分なりの回答を出している人がいたので、僕も真似してやってみたくなった。
(1)
- 僕がソフトウェアを作る場合、何らかの契約があって、その契約目的を達成するために開発する場合がある(未踏ユースとか)。この場合、何のためになんていう問いは愚問であって、まさに契約目的の達成のためである。この契約は必ずしもお金がかかわっているというわけではないので(未踏ユースではお金がもらえたけど)、とにかく約束を守っているだけである。
- 上記のような契約によらず、自発的な理由で開発するのがKの開発のほとんどである。その場合、目的は3種類しかない。開発によっては、複数の目的にまたがる場合もある。
- まあ実証実験の場合も使うのは主に自分が中心で、他の人に見せたりするのはまれである。だからこれも「自分が使うため」と言えなくもない。
(2)
- ここで注目すべきは、他人に使ってもらうため、みたいな観点が皆無であることである。他人なんて基本的にどうでもいい。たとえば自作の開発ツールに簡易helpをつける場合があるが、それは基本的に自分が使い方を思い出せればそれでいい。周囲のユーザがもっと詳しいhelpをとか言っても間違いなく無視する。
- そもそも自分のために作っているのだから、公開する必要すらない。それなのに手間を掛けて公開するのは、以下の理由を意識している。
- リリースしておけば誰かの役に立つかもしれない。誰の役にも立たなければ別にそれでもいい。
- その程度の感覚だからこそ、シェアウエアなどにする気が全くない。
- リリースしておけば誰かがダウンロードして持っていてくれるだろう。これなら家事や地震で家中のバックアップCD-Rが燃えてしまっても、公開最新版から続きを作れるかもしれない。
(3)
- 僕は自分が使わなくなったものについては、開発する気がなくなっている。たとえば僕は「TOWNS大好き、NEC98はあまり好きじゃない」だが、そのせいもあってTOWNSは今も現役なのに対して、98は部屋の片隅に積まれているだけである。つまり年に1度使うか使わないか程度である。だから、旧OSASKの98版は全然本腰を入れていない(98でもOSASKはこんなに早く動くんだという実証をやりたかっただけで、それ以降は適当な感じ)。TOWNS版への情熱とは全然違う。
- でもTOWNS版の開発はI.Tak.さんのほうが何倍もうまかったので任せっぱなしにしてしまった。だから結局はたからみるとAT版だけを重視しているように見えたかもしれない。
- あとこれには幼稚な感情論も少しある。TOWNSや98が全盛だった頃、98 vs TOWNSみたいな論調があって、自分はTOWNS擁護派だったので、そのときのうらみ(?・・・笑)でTOWNSびいきなのかもしれない。まあでも今ではTOWNSと98でいがみ合ってもしょうがない気がするから、どうでもいいことなんだけど(むしろ協力してATに立ち向かうべき)。
- 使わなくなったものはほとんど開発しない、のほかの例としてはV98もそうである。
- 逆に、GOやnaskやtekは今でもほぼ毎日使っている。OSASKも簡単なメモ取りやデモやプレゼンでは必須だ(僕にとっては)。だから気にいらないところがあればどんどん修正している。最近作っている「ぐいぐい01」アプリやefg01も今後はGO以上に使うことになると思っている。だからこそ開発し続けている。そして「ぐいぐい01」アプリがたくさんそろったら、OSASKの代わりにOSASK-HBを使うことも出てくるかもしれない。
- インベーダゲームなどのゲームを作るのは、基本的には実証実験のためかなあ。というのは、別にそこまでやりこむわけではないので。やりたくて作ったわけでもない。まあ微妙に凝っているのは、余興である(笑)。
(4)
- とまあそんなわけなので、僕は別に自分の作ってくれたものが他人に使われなくてもかまわない。もともとそんなことのために作っているわけじゃないから。「使ってやっているんだからありがたいと思え」とか言われたら、間違いなく「じゃあ使うな」って言うと思う。そこまでして使ってもらっても僕には何のメリットもないのだから。もちろん「たまに使っています、便利で助かっていますよ」みたいな人には、なんとなく「使ってくれてありがとう」といいたくなるけれど。
- あと「○○をサポートしたら使ってやる」みたいな意見も嫌いだ。こういうことを言われると「そんなこというなら使わせたくないから」じゃあ一番後回しにしてやろうと思うことすらある。
- もしこのソフトをみんなが使ってくれたらこんないいことがある、みたいな事を言うことはある。でもそれは「だから使ってくれ」というわけではない。空想してそうだったらなあと思っている程度である。
- こんなに強気なのはなぜ?って思うかもしれないが、要するに自分の役には立っているのだ(役に立ってなければ僕すら使わない本当の失敗作ということになる)。だから役に立たないと言い張る人たちは僕とは違う目的を持っていることに他ならないわけで、それは花火が部屋の暖房の代わりにならないと文句を言っているような滑稽さである。部屋を暖めたいのならストーブを買えばいい。僕は見て楽しむために花火を作ったのだから、他の目的のために役立たないとか言われても全く気にならない。
(5)
- 自分で使うために作るといってもいろいろあるわけだけど、公開していないものの中で例を探すと、たとえばメールファイルの整理とか、お小遣い帳みたいなものとか、面白そうな方程式を数値的に解かせてみたりとか、そんなのが多い。そんなの既存のツールを使えばいいじゃないかとを思うかもしれない。実はたいていにおいてその通りなんだけど、適当にCやASKAで書いたほうがいろいろ凝ったことや自動化ができたりして便利なのである(もちろんとりあえず.csvで出力させて自前のプログラムで加工してまた表計算に取り込むとかもやる。マクロとか使おうなんていう気にすらならないので、使っている人がうまくやっているととちょっとうらやましい・・・笑)。
- ちなみに今まで作ったプログラムのうち半数以上は公開してない。僕以外の人の役に立つとは考えられないようなものは、わざわざドキュメントをつけたりするのがバカらしいので。作ってから1週間くらいで全く使わなくなった書き捨てプログラムなんてそれこそ数え切れないくらいある。書きかけのままになっているものもある。
(6)
- ちなみにこのページを書くきっかけになった人の自問の答えは、「他人に自分のアイデアを見せるため」だそうだ。この観点では一般公開はしないにしても必ず誰かには見せているんだろうと思う。僕とは全然違うなーと思った。
こめんと欄