オープンスタンダードはオープンソースやオープンデータとは性質が異なる
オープンスタンダードは、スタンダードという言葉の定義からして、オープンソースやオープンデータとは性質が異なるという考察です。
d:id:hfu:20090304 の続きとして、オープンソースとオープンデータにオープンスタンダードがくっつきすぎることに対する違和感について、思考実験*1により分析してみました。
「ダメなオープン○○」という思考実験
オープンなデータ、ソフトウェア、スタンダードについて、それが技術的にダメだったときに取り得る行動について、「無視する」という選択肢を除くとどうなるか考えてみたところ、
- オープンでダメなデータは、更新すればよい。
- オープンでダメなソフトウェアは、改善すればよい。
- オープンでダメなスタンダードは、地獄への道を舗装する(d:id:sshi:20060215)。
ということばを思いつきました。
これを分析すると、スタンダードは、その「策定過程」や「再配布方針」について「オープン」であったとしても「自由な改変を認める」という意味での「オープン」であれば意義を失うというところがあるのかなと思い至りました。Sinatra (http://www.sinatrarb.com/) のように、「Fork me!」と言うことは、勇気のあるソフトウェアやデータには認められても、スタンダードには認められることではありません。
よって、データとソフトウェアについては、「オープン化」により「十分な目と手と時間があれば良くなる」効果を期待できますが、スタンダードについてはこの効果を期待することができません。
オープンスタンダードはこのような意味で、オープンソースやオープンデータと性質を異にします。そのため、オープンソースやオープンデータとは異なり、オープンスタンダードは「技術的に優れている」又は「将来改善されることが期待できる」わけではありません。
オープンソースやオープンデータにオープンスタンダードが一体化する不自然さは、分散の思想の中に中央集権の思想が入り込む不自然さなのだと思います。
注釈
このエントリは、スタンダードが不要であるとか、クローズドなスタンダードのほうが良いということを主張しているものではありません。オープンなスタンダードを技術的な検証をせずに無批判に導入してしまう現象の理由の分析として、オープンなデータやソフトウェアと同じ性質をオープンなスタンダードが備えているという誤解があるのかもしれないということを主張しているものです。
また、「スタンダードを定める」ことと(いわゆる)「API を公開する」ことを混同する可能性も考えられますがこの2つも大きく異なります。「スタンダードを定める」というのは、他者に対して同一の約束に従うことを求めるものであると理解しています。「API を公開」して独力又はグループで特定の技術やサービスを広めることは、必ずしもスタンダードを定めなくても実現できます。「中央集権意識」や「他者意識」といったものが、「スタンダードを定める」という文化にはあると考えますが、そのような意識を大事にしなくても済む場合や文化は、小さくない範囲で存在すると考えています。
「成功するオープンソースはスタンダードのフットプリントを最小にする」という法則を立てて、これを例えば UNIX 系の DSL (domain specific language) 採用ソフトの存在によって検証できるかもしれません。
「成功するオープンデータはスタンダードのフットプリントを最小にする」という法則を立てて、これを例えば Project Gutenberg や OpenStreetMap の存在によって検証できるかもしれません。
ただし、上記のことについては、「成功して市場を席巻したプロダクト(ソフトウェア又はデータ)はスタンダードを必要としない」ことによる効果との区別が難しい場合があるかも知れません。(暗黙のスタンダードがあって、それが明示されていない恐れがあります。)
また、「スタンダードは、フットプリントを最小にしたときのみ成功する」ということが言えるかもしれません。
*1:言葉の使い方が間違っているかも知れません。