アプリケーションの無い世界へ

追記

(個人的な意見としては、)現代的なHyperCardをデザインするのは容易な仕事でない。この"現代"とは、(e-mailやWeb、マルチメディア、DBのような)既存のコンテンツを流用し、加工するという点が非常に重要になる点を指す。
後期のHyperCard文化がXCMDやXFCNにまみれていったこと、そして、それらの多くが入出力(カラー化やリソース操作、Drag and Drop等)に関連していたことを考えれば、コンテンツの制作における入出力の重要性が言える。

以前の内容

いろいろと締め切りの直ぎた仕事も多いし、配属の発表ももうすぐなので、自由に自分のことを考えられるのもこれが最後だろう。
というわけで、現時点を一応書いておく。yuniやlibemit、それ以前のnijiや他のOSプロジェクト全部が、この未来に向かってデザインされてきたし、今後も目指したいという気持ちはある。
でも、商業的な要求はこれを許さない。それでも、これを制約の中で実現する方法を模索するのが僕に残された自由だろう。

アプリケーションの黄金期が(再び)始まろうとしている

ここ10年、すくなくとも2008年くらいまでは、アプリケーション冬の時代であった。全てはWebで完結すると思われ、(通信事業者を虐げることで)人々の生活はアプリケーション無しで完結できると思われた。
しかし、ここ2年ほどで状況は変わった。支配の逆襲はDRMという形でついに機能し、人々が"与えられた"アプリケーションに依存する時代がやってくることになった。
多くの人は、"自分はiPhone/WinMobile7のようなPCは出現しても買わない"と考えるだろう。しかし、通常の人間のコンピュータの選択はマジョリティに大きく制約される。(今とだいたい同じことができる)MIPSワークステーションを当時どれだけの人が使っただろうか。そのモデルがどんなに気にいらなかったとしても、あなたは普及したコンピュータしか使うことはできない(今、偶然、あなた好みのコンピュータは普及しているようだけれど)。

しかし、人々はUIを求めているわけではない

UIはユーザがデータに関わるために必要だから準備されているに過ぎない。
しかし、UIはアプリケーション(か、変更不能なOS)が提供する。UIを提供するためには審査を潜り抜け、場合によっては年会費も払う必要がある。

結論 : コンテンツを販売する

AppStoreのような場所で売られているアプリケーションを見たとき、それが"コンテンツ"足り得るかどうかは検討に値する。
もちろん、他人の作ったAPIを勉強し、うまく動く組合せを検証し、必要に応じて職人的調整を行うことは現時点では価値が有る。その価値をなくすことこそが、我々プラットフォームデザイナに求められていることであり、より新しい方法論が必要とされている領域である。
例えば、Linuxは"一般的なハードウェアで動作し、Socketのような高レベルなAPIを提供する"という部分の価値を大幅に減らした。だから有料の組込みOSに金を出す層の一部は金を出さずに済むようになった。
僕はプログラミングが出来る(し、ソフトウェア特許を尊重する必要は無い)ので、動画の変換ソフトを金を出して買うことはしない。僕にとっては有料の動画変換ソフトには大抵価値が無い。
しかし、C言語で書いたソフトウェアを無料/廉価で提供することによって減ずる価値にはある程度の限界がある。例えば、プロトコル記述言語はC言語よりも効率的にこの価値を減ずることができるだろう。
コンテンツを販売するという視点に立たないといけない。地図アプリを販売するのではなく、地図を販売する。
(ゲームはプログラムがコンテンツたる重要な例外だろう。実際AppStoreでも市場の多くをゲームが占めている。また、現状では地図はメタデータの価値が高く、データとして提供することによって減じる分が非常に大きいので何らかの方策が必要になる。言い換えれば、アプリケーションとして提供することで、メタデータへのアクセス手法を制約し廉価に提供できるという側面が有る。)

方法論

以下を実現する :

  • CODECのような高度演算パートもユーザが自由に追加できる(安全な)手法を準備すること
    • ↑により、プロトコルの追加をユーザが自由に行えること
  • 情報の共有を、シームレスかつ無操作で実現すること
  • Webやメール等の情報をスクレイピングするためのUIを提供すること
  • "読みたいところだけシームレスに読める"Webブラウザを提供すること
  • Google Waveのようなリアルタイムオブジェクト共有をデバイス上で実現すること

...ひらたく言えば、"プレーンなオブジェクトシステムの上で生活を完結させ、より高収益な商品にお金を使ってもらう"戦略と言える。iPhoneAndroidと同じAPIを備えたところでそれらよりも多くのアプリケーションは開発されない。だから、人々が望んでいる"アプリケーションの無い生活"を率先して実現しなければならない。
実際、UNIXの生活はアプリケーションの無い生活に近い。いわゆるワンライナーやnetcatを駆使していろいろな仕事ができる。しかし、同様の操作性を通常の人間に提供するために多くの努力が必要になる。単にUNIXを提供してもLinux Zaurus程度しか売れない。GraphEditが有るのに、Windows向けのエンコードソフトが売れ続ける理由を考える必要がある。現代にLispマシンが現われても、現代的なWebやプロトコルに対応してないから使い物にならないだろう。
誰も、従来のモデルから脱却してみたことが無い。つまり、プロトコルプログラミング言語における第一級市民になり*1、ユーザが自由にプロトコルを"話す"時代がおとずれたとき、それでもアプリケーションは必要だろうか。

*1:現在この位置には"文字列"が居る。だから、文字列で提供されたデータを正規表現で処理するのがワンライナーの基本たりうる。いくつかの言語ではJSONXMLもこの位置に配置できる。しかし、MPEGのフレームやZIPアーカイブはまだそうではない。