#170 Piggydbと類似ソフトウェアの比較   #Piggydb Blog     #コラム     14 years ago (owner) Document
Piggydbを「~のようなソフトウェア」だと形容するのはなかなか難しいのですが、以前「Wikiのようなブログのようなシステム」だと言って頂いたことがあります(#52)。
Webアプリケーションの代表と言っても良さそうなこの二つのソフトウェア(Wikiとブログ)とPiggydbを比較すれば、その違いから「Piggydbとは何か」ということに迫れるのではないかと思いました。
ということで、書きながら検討してみたいと思います。
ソフトウェア開発者の世界では、ソフトウェアを、内部で扱われるデータのかたち(モデル)と、それをユーザーにどう見せるか(ビュー)に分けて考えることが多いので、この2つの視点に基づいて考えてみます。
ブログ、Wikiについて検討してみると大体以下のような感じになるでしょうか(ここでは、そのソフトウェアにとって本質的でない機能は除いて考えます)。
  • ブログ
    • モデル
      • 「エントリ」という単位で構成されている
      • 「エントリ」は「書かれた日付」という属性を持っている
      • 「エントリ」には複数の「コメント」がぶら下がっている
      • 「エントリ」同士は「トラックバック」という仕組みによって結び付けられる
    • ビュー
      • 時系列一覧
      • 日付によるナビゲーション
      • 1エントリ(コメント、トラックバック含む)
  • Wiki
    • モデル
      • 「ページ」という単位で構成されている
      • 「ページ」同士はWikiNameを媒介として結び付けられる
    • ビュー
      • 構造はモデルと一致
      • Wikiフォーマット
ブログもWikiも、そしてPiggydbも大まかに言えば、ネットワーク型のモデルを採用しているという意味では共通しています。ブログはトラックバックを介して繋がるエントリのネットワーク、WikiはWikiNameを介して繋がるページのネットワーク、そしてPiggydbは「つながり」を介して繋がる「フラグメント」のネットワーク。
ですので、差異はどちらかというと、モデルとビューの対応に現れます。
ブログは、その用途の都合上、時間を軸にしたナビゲーションがビューの中核になります。よって、古いエントリは必然的に埋没しやすくなります。この仕組みを純化したものがTwitterだと言ってよいでしょう。
Wikiではモデルとビューの構造が一致しています。Wikiの「ページ」はそもそもWebアプリケーションのビューの単位であるページそのものだからです。
モデルとビューの構造が一致していることの意味は大きいです。それによって、ユーザーがWikiというシステムを理解する際の認知的なハードルが最小となり、そして、ソフトウェアの実装自体は、極限までシンプルになります。Wikiはアプリケーション自体がモデルなのです。多くの応用や亜流のソフトウェアが生まれることも頷けます。
Piggydbは、確かにブログとWiki双方の特徴を兼ね備えていますが、その哲学としては明らかにWikiのコンセプトを受け継いでいます。
Wikiはシンプルでありながら強力です。そしてPiggydbは、コンセプトのシンプルにおいては、到底Wikiには敵いません。
Piggydbの試みの一つは、Wikiの汎用性を確保しながら、Wikiの特徴である「モデルとビューの一致」という原則を崩し、ビューがモデルに縛られないというソフトウェア設計の原則に立ち戻って、Wikiにはない強力さを得ようとするものでした。
Piggydbのモデルを構成するのは、ページより細かな「フラグメント」という単位で、ビューの構造からは独立しています。一つのWebページに対して、どのようにフラグメントを配置するかは自由です。
ここまでの検討で見えてきた差異を簡単にまとめると、Piggydbは、ブログのように用途が限定されておらず、かつWikiのようにビューがモデルに束縛されることもない、ということになるでしょうか。
しかし、ここからPiggydbの課題もはっきりと見えてきます。ビューとモデルが一致していない場合のデメリットは、直感性が損なわれることと、Webアプリケーションの場合、ページ移動のコストが比較的大きいため、ユーザビリティに問題が生じる可能性が高いこと、などが挙げられます。
考えてみれば、Twitterで頂いたフィードバックはこの問題に起因するものが多いような気がします。
Piggydbは、一般的なアプリケーションとは異なり、モデルが先に着想されていたソフトウェアだということもありますが、ビュー(見せ方)については今後まだまだ改善の余地があるなと改めて感じました。そして、ビューがモデルに束縛されない以上、今後の発展の余地は相当にあると思います。