Chapter 2. 2D GUI

Table of Contents
Strategy
General behavior
Mapping
Constraints

Emulates traditional Windows or Macintosh applications.

The rules described are far from being complete and generally a mess, but I think, they do a good job demonstrating, that an implementation of a 2D GUI OOUI kit is possible.

Strategy

Generally, I can see three ways to manage the complexity.

Hardcode

A quick and dirty implementation could hardcode the rules for creation of concrete 2D GUIs in source code. It propably would not be very extensible (while “extension” here aims at increasing the comfort etc. of the resulting UIs rather than adding features) and thus offer UIs of only limited comfort.

Interpreter

An implementation could use a specialized language to describe the rules for creating UIs. This might be a hard task in the beginning, but enables customization and tweaking and thus propably increases the quality of the resulting concrete UIs noticably.

AI

I think, an OOUI Kit would a very good application for AI. It might be teached with UI creation guidelines (as outlined in many books) and then does the job of an UI designer.

Many decisions in the UI creation process are based on experience (compare OOUI hints ; e.g. how many items will propably appear in practice or how often they are usually used). An AI does not necessarily have to use general experiences, but can record the habits of the specific user exactly and, after having gathered enough data, reorganize (or “optimize”) the UI for him/her. Some data might even be applicable across applications, which enables the AI to create personalized UIs for new applications from the beginning on. In general, this means, the Kit notices the preferences of the user automatically, without the user having to go through preferences dialogs (and many traditional apps don't even offer such preferences). All this is possible with hardcoded UIs as well, but to the most part impossible in practice, because it means a lot of work. It is much easier to implement on such an abstract layer.

Personally, I consider the use of an AI being the most promising solution and maybe even the strongest argument for OOUIs. An AI brings a new perspective into the UI creation process - the strictly logical one. It is very possible, that an AI invents completely new UIs, whose ideas might even be used in future traditional applications (with hardcoded UIs) as well.