tenjuu99(天重誠二)'s avatar
tenjuu99(天重誠二)

@tenjuu99@hollo.tenjuu.net · Reply to pokarim's post

@pokarim 誤解を避けるために留保を置いておきたいのですが、狭く概念とコード命名の一致を求める、というわけではないです。

以下、長くなったのですが、わかりにくいかもしれません。

まず、「恣意的関係」について言えば、たぶん二つのものがあって、それらが自由な関係にある場合に恣意的であるとおもいます。たとえば信号機に赤と青の色がそれぞれ停止と進行を意味しますが、赤=進行/青=停止と最初に定義されていれば関係は逆で、ここに必然性がない=恣意的である。 ただし、これがたとえば大阪では青=停止で赤=進行だが東京では逆だ、となるとかなり困難がある。それゆえ、まずこの恣意性はコントロールされる必要がある。

このコントロールの手段として有用であると考えられるのが、「二つのものごとの関係を類比として扱う」ということだとおもいます。これはメタファーだとおもいます。メタファーは、あるものごとの関係を別のものごとの関係と比較して、構造的な類似性を見出す行為だとおもいます。

コンピュータ上のUIの「ボタンを押す」ってメタファーですが、ボタンでもなんでもないし押しているかどうかもわからないわけですが、突起物とそれを押す(?)という関係に還元してしまえば、構造的な類似を見いだせる。コンピュータ上のあるUIを「ボタン」と呼ぶのは恣意的ですが、それが突起物と押下という行為の関係として見たときに「ボタン」という類比が成立する。フラットデザインがそうしたように、ボタンはボタンでなくてもよかった(恣意的である)のですが、実際には、デザインが機能するためには、恣意性が消滅しているかのように見えていないといけないんじゃないかと思います。

こういう関係を考えると、「ユーザー側の言語」と「プログラミング上のコード」は、単純な一対一対応なわけではなくて、むしろ重要なのは関係が類似することだと思います。コード中にメタファーが埋め込まれることは、プログラマーが類比関係を把握することに役立つ。ユーザーの言語とコードはまったく恣意的な関係にあるわけですが、この恣意性を克服することがデザインの課題であり、それに有用なのはメタファーである。詳しく述べるとこういう感じかと思います。

pokarim's avatar
pokarim

@pokarim@fedibird.com · Reply to tenjuu99(天重誠二)'s post

ありがとうございます。その誤解については大丈夫だと思います。おかげさまでわかってきたように思います。私がユーザーの言語とコードの関係性に力点をおいたのが間違いで、そうではなく、そういったメタファーとはなにか、それはどう選択され組み合わされるものなのかについてが本当に考えたいことでした。