For example, let’s consider the task of peeling an apple. In the process of going from an apple in its original state with the peel, to the desired state of an apple with the peel removed, a dedicated apple peeler would support most of this process. The apple peeler is a tool with a lower level of abstraction, meaning it is more concrete in its ability to peel apple skins.
On the other hand, a fruit knife only supports a smaller part of the process of peeling an apple (Figure 2-5-3). However, a fruit knife can be used for more than just peeling apple skins. This is an indication of the higher level of abstraction of a fruit knife. Tools with a higher level of abstraction allow users to think about their own uses and expand convenience through improvement of their own skills.
Tools with a higher level of abstraction are also modeless, meaning they do not enforce a specific way of use. Conversely, tools with a lower level of abstraction are modal. Modeless tools enhance their meaningfulness through the user’s own changes, promoting positive development between people and tools. This is the significance of designing with a modeless object-oriented approach, rather than a modal task-oriented design.