オープンソースとマイクロソフト

wxWidgets上の開発環境についてですが・・・現在絵の制作なんぞに時間くわれてて全くすすんどりません。なんかそこの辺りで検索してくる方も多い様なのですが・・・
時間どっかでとれないかなーとか思いつつ進められそうにないのでごめんなさい。

Slashdot本家に、マイクロソフトからビルゲーツ氏が退職した事によってマイクロソフトのOSSに対する姿勢は大分友好的に成ってくるのではないかという記事が出ていた。そしてSlashdotの中では色々な議論が出ている訳ですが。
OSSコミュニティーからすればマイクロソフトの様な大手、しかもデファクトをとって大きな利益の為に動く様な会社は悪であり、ソフトウェアはすべからくしてオープンである事が正義であり、それによって活発なソフトウェアの発展が起きるという考えを持っている人が結構いるようです。
実際その論旨は個人的な意見として正しい部分も有ると思うし、有効な面も有ると思っているのですが、そういったSlashdotの様なコミュニティーの中には勘違いも多く含まれる様に思えて成らないというのが、こういった記事の反応を見た感想です。


実際オープンソースソフトウェアというのは、開発者たちが電子計算機を便利に利用出来る様にしたいというモチベーションから、そういった機能を皆で提案、設計、開発、テストしていく事で共産主義的な理想の元にソフトを開発するというコミュニティーだと思います。この共産主義的なソフトウェアの開発インフラのモチベーションはお金よりも先に自分たちのモチベーション、そういった便利な物が共有して使える世界を作りたいという所から来ているのではないかとおもいます。問題はこのモチベーションの在処とそのコミュニティーの構成の偏りに有ると感じるのです。

ここで少し話題を変えて、ソフトウェアに求められる機能とは何かを考えてみる事にします。まず、ソフトウェアというのは電子計算機を駆動し、何らかの目的を達成するための道具として機能させるための道具です。そのソフトウェアの目的は多種多様であり、お絵描き、音楽再生、アルバム作成や年賀状作成の様な個人の生活の中での目的を達成するためのパソコンとしての目的であったり、工業機械や自動車、家電製品を駆動するための機械的製品の制御を行うための物、送電や電車のダイヤ、取引情報の制御運用に至まで様々です。この目的に応じてそれを運用する人たちのスキルレベルや知識には偏りが有ったり、無かったりします。

身近な例でパソコンを取り上げてみましょう。年賀状作成やアルバム作成等はその目的は一般のパソコンユーザー全体で共有している様な目的です(やる人やらない人はいるにせよ)。これらを目的として活用する人たちを見ると、パソコンに対する知識、電子計算機技術に対する知識というのは平均的に見て特に高い訳でもなんでもありません。また写真加工や編集技術に付いてもおそらく同様でしょう。こういった目的を持ったアプリケーションの理想的な要件は何に成るかと考えると、やりたい事はあくまで、自分のデジカメでとった写真を選んで綺麗なアルバムに残したい、というのがトップレベルのユースケースに成ります。特にパソコンである必要性やニーズは無く、安く簡単に綺麗なアルバムが作れる事が第一要件となります。そういった場合パソコンの操作に関しては「手間」であり、理想的なアプリケーションを作る上ではいかに簡略に解り易く出来るかが重要となります。となると、簡単に言えば、平均的な5歳児くらいでも使えるソフトである事が要件としてあげられます。そこにプラスして写真を選ぶ方法や写真をレイアウトする方法、写真の輝度彩度の補正等によって見栄えをよくする方法、編集して文字などを入れる方法等が機能として有る事によってソフトウェアとして完成していく訳です。
これらをプロフェッショナル的に行うとすればそれぞれに対しての知識や経験が必要となり、得られる結果は技術次第となります。ただ、ターゲットが一般ユーザーで有る以上、それらの知識や経験が全てにおいてなくても操作し結果が得られるのが重要であり、その中で、ユーザーが選んだ所に関しては多少深く操作が出来る、意思入れが出来るのが理想的です。

こういった要件を持ったソフトを作る場合、こういったユーザーに向けてソフトを開発し販売をしようとした場合、そういった要件を全て満たせる事を目的に開発を行う事ができます。この場合はモチベーションは販売によって得られる収入になります。後はその理想的要件を満たせるソフトを作り、うまく販売が出来た(ユーザーにそのソフトウェアが受けた)場合に収入が得られる事に成るため、ソフトウェアはその理想要件に有る程度近づく方向で進化することが有る程度は担保されます(あくまで広い目で見ての話になりますが・・・)。これに対して、オープンソースで開発した場合はどうかと考えてみると、まず、オープンソースである以上開発者たちは直接そこから収入を得られる事は有りません。そのサポートを販売する事で収入を得るというビジネスモデルは有る物の、よほど大きなプロジェクトでない限りそういったモデルは成り立ちません(ユーザーはただで使えるものをなかなかお金をはらってサポートを受けない、サポートに対する価値をなかなか見出さない事が現状ではまだ多いのではないかと思われます)。そうなると開発者のモチベーションはあくまで自分たちが専門では無い画像編集の機能であったり、不便なアルバム作りの作業の手間を減らすというためのソフト開発、もしくは純粋に技術的興味や自己充足がメインのモチベーションに成ると考えられます。そうなるとターゲットユーザーは自分たち、というのが多くなり、想定ユーザー層に、コンピューターの操作に馴れているという偏りが表れます。そうなると、機能としては先ほど挙げた様な機能を十分満たしていても、操作系はパソコンユーザーとしては比較的高度なユーザー向けのソフトという形に成っている事が多々見受けられるのが現状ではないかと思っています。これは、モチベーションの違いによるターゲットユーザー層の差、そしてそのユーザー層のパソコン知識に対する偏りが大きな要因に思えるのです。

ここで最初の話題に戻りますが、マイクロソフトの様な利益目的の企業が開発するソフトと自己の充足の為に開発されるOSSでは目的のベクトルやモチベーションが違うために、一般ユーザーへの浸透という意味では利益目的の企業が開発するソフトの方が早く浸透、親和する可能性が高い、もしくはそちらに向く事が多いというのがこれまでのOSSとの対比だったのではないかと思います。これも別にOSS全てに言えることではなく、ユーザー要求の高い、大きいOSSプロジェクトは活用する側(一般ユーザー)の要求の入ったプロジェクト運営や、そのソフトを活用したビジネスモデルを構築してターゲットユーザー向けの収益目的のビジネスを展開する事を見据えて参加する企業が有るおかげで一般ユーザーでも使い易いソフトというものも大分増えて来ている様に感じます。ただし、構造上、現在の資本主義社会の中ではOSSでは、最初のモチベーションはあくまで開発者の収入以外のメリットであるため、他者(開発者以外)の利益が第一には成りにくいのが構造として有ると感じています(全てがそうという訳ではないですが)。事実OSSの多くのソフトは機能的には先進的であったり、PCが活用出来る人間にとっては便利な物に成っているのが多いですが、一般に向けた5歳でも使えるソフトかというと疑問符が多く残るのが事実だと感じています。
そういったソフトウェアを一般に提案し、普及させる原動力を強く持ったソフト開発というのはやはり収益目的がある企業の方が強く、実際Windowsはそこを上手く突いてのし上がって来たし、アップルの現在の支持もそういった面にあると思います。
ここをはき違えて、全てOSSであればソフトウェアの世界はもっと発展するとだけ叫ぶOSSコミュニティの一部メンバーに対してはもう少し世界を広く見てほしい物だと。今回の記事に対する投稿を見ていて感じました。

世界の全ての人間がパソコンの実装都合によった操作形態の複雑性とその複雑性の中で蓄積された特殊な操作方法を使いこなせるほどに成るまで教育されるかというと、それはまだまだ先だろうし、永遠に浸透しない操作方法ものこると思います(ブラウザーのジェスチャーとかも正直便利では有る物の微妙ですよね、愛用してますが)。そういった意味でも資本主義社会の中ではOSSだけではそれぞれのターゲットユーザーにとって真に使い易い良いソフトウェアの開発というのは促進されないだろうと思います。
マイクロソフトが好きなわけでもないけど、デファクトを作ったからこそ発展が加速したのは事実だし、オープンソースが全ての答えだ的な考えは捨てた方が良いと思う。少なくとも資本主義というシステムの上ではね。まぁ共産主義はそれはそれで理想論すぎて全く現実問題を見ていないし、発展思考が無くならない限りは現実とそぐわないため実現は出来ないだろうし。まぁその辺りの話はまたそのうち。

タグ: , , , , ,

Tags: , , , , ,

Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>