There are 4 major problems with existing systems, they; * are closed, * use of polling and coroutines, * over use of specialization versus aggregation and * have hidden view coordination.
## User Interfaces Need To Be Open
The user interface behaviour is hidden from the user (programmer), in systems such as the Macintosh and MS-Windows. When creating user interfaces for complex and sophisticated applications, developers must conform to what they are given. In closed systems, programmers do not know the full extent of what is possible. Because of this, doing something which is out of the ordinary is difficult since programmers cannot see or modify how the system's components function.
In Smalltalk, browsing the user interface classes helps people see how the existing data types interact and how new data types can be built. Some may argue that such open systems violate user interface standards or are too inefficient. We believe that the ability to restructure/modify the system is essential when designing more complex user interfaces. The interface designer must be given both fine and coarse grain control over the system.
This control can be used in the design of an application which is to be used by both able-bodied and handicapped persons. User's with motor disabilities would like to be able to adjust such critical parameters as the Hysteresis of the Mouse. The same is true of systems which are used on both high powered graphics workstations and character only displays. Both of these situations occur frequently, yet few systems allow for adjustment of these parameters.