2016年01月17日

ソフトウェアの在り方と、動詞主義とオブジェクト指向

コンピュータを扱うときは、「動詞」が最初に来るというのは、ごく自然な発想だったと思います。

コンピュータに命令を与えるときは、コマンド名を先に入力し、何のファイルを扱いたいかをオプションとして(後から)指定する。
C言語で何かをしたいときは、まずは関数名を書き、その後に引数として変数名を指定する。
一太郎で文字の色を変えたいときは、まずは文字色の変更を選び、変更したい文字の場所を選ぶ。
テキストファイルを編集したいときは、まずはメモ帳を起動し、メモ帳から編集したいファイルを開く。

逆に、「目的語」が先に来るパターンもあり、人間的にはそっちの方が自然な発想であることが多々あります。

readme.txtを読みたいので、ファイル名をダブルクリックする。すると、メモ帳が立ち上がった。
クラスのインスタンス.メソッド名()。
Wordでは、文字色を変えたい文字の位置を選択状態にし、メニューから文字色の変更を選ぶ。

人間が自然な発想でモノを考える場合、「動詞」を先行して考えるか、「目的語」を先行して考えるか、どっちが良いかは場合によります。

テキストファイルの中身を読みたい、メールを受信したい、写真を撮りたい、動画を見たい、・・・

たぶん、人間の場合は、目的が先にあって、そのためにアプリを起動させるのは、自然な発想かと思います。

ただ、アプリ毎に個性があり、また各種アプリストアの課金の単位は、当然ながらアプリなわけで、「どのアプリを使って」が先に来て「何をするか」が後に来る、というのは、提供者側・経済的な観点から見ると、むしろ自然な発想とも言えます。


実は20年くらい前、初めてWindows 3.1に触れたとき、「ファイルの関連付け」という仕組みを見て、さらに、「文字列を選択してから、何をしたいかを選ぶ」仕組みを見たとき、「目的語が先に来る」ということの新しさをまざまざと感じました。
その後、C++やJavaでオブジェクト指向を学んだとき、これからのコンピュータの世界は、目的語が先行するのが当たり前になるんだ!と確信しました。

が、やはりソフトウェアを提供する側から見れば、「どのソフトを使うか」を先行して考えて欲しいと思うものです。
ユーザーは「楽しみたい」と、ただ漠然と思うのだとしても、それならば、僕の作ったゲームを買って、プレイして、楽しんで欲しい、と。

スマホやタブレットの場合、まずはホーム画面でどのアプリを使うかを選んで、それから何をしようかを考えます。
アプリを売る側からすれば、同じことをしたいなら、自分の作ったアプリを使って欲しいと思うでしょう。有料のアプリなら、なおさら。

結局、人間がコンピュータに指示を与える方法が今後、「動詞」が先行していくか「目的語」が先行していくかなんて、場合場合によって変わってくるんですよね。



続きを読む
posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | プログラミング