富豪的プログラミング

ちょっと贫しいGUI

ユーザインタフェースのプログラムといえばすっかり グラフィカルユーザインタフェース(GUI)があたりまえになりました。 ところが最近の计算机はメモリもディスクも大量に装备しているし CPUパワーも従来とは比べものにならないのに、 意外と贫乏臭いインタフェースが生き残っているようです。 よく见られる以下のようなインタフェースはちょっと贫しい と思われます。 ところで10年ぐらい前はワークステーションでもGUIがあまり 普及していなかったので、ウィンドウシステムや各种のインタフェース ツールキットの研究开発が盛んでしたが、最近は 新しいウィンドウシステムが作られたなどという话をとんと闻きませんし、 GUIのプログラミング手法とかデバッグ手法というのも ほとんどお目にかかれなくなってしまいました。 実际ここ数年のbit志を见てもそういう记事はほとんどありませんし、 计算机インタフェースの学会でもその手の研究は あまり流行っていないようです。

この理由はずばり、ウィンドウシステムやツールキットが充分普及したので、 苦労しなくてもGUIが简単に作れるようになってしまったという 思い込みが浸透したからだろうと思います。 特に素晴しいプログラミング技术やインタフェース部品が 発明されたわけではありませんから、 実のところはユーザの我慢レベルとプログラマの我慢レベルが 妥协点に达してきただけではないかと思います。 この过程で结构贫乏臭いインタフェースが标准になってしまったようです。

WebのCGIがその典型的な例ではないでしょうか。 かたやインターネットの音声だの动画だのが话题になっている 时代に、ユーザ侧からは字の并んだだけのメニューからの选択や 文字入力しかできないという仕様はかなり贫しいですが、 JavaやVRMLの话题が沸腾しているのに対し、 CGIの仕様が问题になっているとか新しいバージョンが计画されているとか いう话はあまり闻きません。 CGIでも最低限の指示はできますし、 ユーザが简単にプログラマに変身できてしまうので、 贫しい仕様で満足させられてしまっているようです。 これでは昔のBASICのようです。

富豪的プログラミング

プログラマというものは、つい昔の癖で効率的なプログラムを工夫したり 资源を节约したりしようとしがちですが、ユーザインタフェースの プログラムを开発するときにはこれが里目に出ることもあります。 というのも、ユーザインタフェースのプログラムでは 机械の効率よりも使い胜手が优先されるべきですし、 プロトタイプの作成とその评価/改良のサイクルを 数多く缲り返す必要があるのですが、 计算机资源を节约しようとすると これらの条件が後回しになりがちだからです。

これを解决するのが富豪的プログラミングです。 以下のような富豪的プログラミングを行なえばこのような问题は 起こりません。

富豪的プログラミングでは现在の状态を记忆しておく必要が少なくなるので プログラムが短く、バグを含みにくくなります。また、ユーザが何か 操作を行なう度にシステムがすぐに反応するので、直感的操作が可能に なります。

アイコンのドラッグのようないわゆる 直接操作インタフェースは富豪化への第一歩です。 ユーザの入力により 検索条件が変わるとすぐに検索を再実行して表示を更新する手法は 动的検索と呼ばれており、 将来の検索システムでは常识になると思われます。 またユーザの操作に応じてリアルタイムに连続的に ズーミングを行なうことにより巨大なデータを简単に 操作しようというズーミングインタフェースが 最近注目を集めています。 こういった インタフェース手法は富豪的な発想が无いと思いつかないでしょう。 豊かな资源から豊かな発想が生まれるのです。

Webの成功はその富豪的発想が键だったのではないでしょうか。 クリックする度に海外から画像を転送するなどというのは 贫乏人には思いもよらない発想です。 最近は结构富豪なインタフェースツールキットもあるようで、 カーネギーメロン大学で开発されたAmuletというツールキットを使うと ``Hello, world''とウィンドウに表示するプログラムの サイズが5MBになります。素敌な富豪感覚ですね。 腹が减ってはこれからのシステム设计はできないのかもしれません。

もちろん 発想がいくら富豪でも実际にプログラムが动かなければ仕方がありませんが、 最近のPCは昔に比べると超大富豪的ハードウェアを持っていますから 何も気にしなくても富豪的プログラムが动いてしまうことも多いですし、 プロトタイプの时だけでも高速な计算机を使って 豊かな気持ちでインタフェースを设计するのが大事でしょう。 まだまだ贫しさがひそんでいるかもしれません。

というわけで、これからのGUIプログラム/デバッグは 富豪化がポイントでしょう。 私は最近は富豪的プログラミングしかしないのでGUIのデバッグなど したことがありません。はずなんですがね。

by 増亚博—亚洲的中文娱乐平台之 (富豪化理论研究家)