プレゼンテーションにおけるMVCモデル

2012-10-05 07:01

というわけで、12月にWISSで発表することになった。もうどんどんネタバレしちゃうよー!(誰も読んでません)というか通勤途中に思いついたことを書いておく。

先日Gorotteを使っていて、こんな文章を発掘した。

地図が地図として役に立つのは、その情報の豊かさからではなくて、むしろ街に備わっている無限の情報が適度に抜け落ちているからである。「街の情報の全てを地図には盛り込まない」という知性がある。

via: Twitter / shingoemoto: 地図が地図として役に立つのは、その情報の豊かさからで ...

街に備わっている無限の情報を、取り込みモデルとして構築するのは偉大な仕事。しかしそれを人間に提示する際にはモデル構築と同じ程度の労力を必要とする。人間に必要な情報はどれか。それをどのように提示すればよいか。つまりViewを構築する必要があるのだ。膨大な情報の中から、人間に必要なエッセンスを抽出し、そして再構成する。これがViewの役割だ。

これは人間が使うシステムを作ろうとする場合に常に念頭に置かなければならない事柄だ。

「ModelとViewは分離する。両方とも同じくらい重要である」

あたりまえと思う?よくある間違いというのは「こんなにすごいModelを作ったんだから、全部ユーザに提示しなきゃ」というものである。その結果は、例えばSongriumのようになる。

一番最近目にしたものだから、例として挙げただけだが、こうした類の「ModelとVIewの混同」は無数に存在している。その結果ユーザにとって「何のことかわからん」システムが出来上がる。

--------------
さて、話はプレゼンテーションである。昨日ARPEGGiO Channelなるもので、プレゼンを見ていた。ここしばらく、Windows SurfaceやiPhone5やGoogle Nexusのプレゼンを観た後だったので、これはまさしく異次元の体験だった。あたかも20年前にタイムスリップしたかのように感じた。「スライド」の一枚を以下に示す。

arpeggio.jpg

これが

「ModelとViewを混在させた」

スライドの典型的な例である。Ustreamの画面では何が書いてあるのかさっぱりわからないが、おそらく書いてある内容は正しいのであろう。それを手元に持ち、丹念に読めばARPEGGioなるシステムがどのような「Model」か理解できるのだと思う。日本を代表する一流企業の社員だからそこらへんは抜かりがないだろう。

しかしこれはViewではない。これを出されて何のことか理解できる人間はまず存在しないと思う。じゃあそもそもこのスライドは何のために存在しているのか、とModelとViewを区別する立場からは問いたいところだ。

世の中には「配布資料の読み上げ」の意味をもった「プレゼンテーション」なるものも存在する。私には未だにその存在意義が理解できないが存在するのは確かだ。多分この発表ではそれを指向したのではなかろうか。そうであればModelだけ存在しておりViewがないのは理解できる。

しかし私はそんなプレゼンテーションをやろうとは思わない。ModelとViewは分離すべきだし、そもそも別物だ。作った物を全部スライドに載せるような「聴衆不在型」のプレゼンは唾棄すべき存在だ。

ではプレゼンターは何か?Controllerである。MVCモデルは批判を浴び、かつ何度も代替案が提案されながらも数十年の歳月を生き抜いてきている。これは驚くべきことだ。そしてプレゼンテーションにおいてもMVCモデルを考えることを提案したい。

----------
という話しを朝歩いている途中に思いついたんだけどどうですかね。思いついたことをそのままブログに垂れ流すのはView不在ではないのか、と心の中から大きな声が聞こえるが無視する。