Getting Close to Objects: Object-Focused Programming Environments
暂无分享,去创建一个
Current visual programming environments make use of views and tools to present objects. These view-focused environments provide great functionality at the expense of distancing the objects behind the intermediary layers of views and tools. We propose the object-focused model, which attempts to foster the notion that objects themselves are directly available for interaction. Unique, directly manipulable representations of objects make them immediate, and basing functionality on the object rather than on extrinsic tools makes them the primary loci of action. But although immediacy and primacy contribute to the sense of concreteness of the objects, discarding conventional views and tools potentially restrict the functionality of the environment. Fortunately, by being extremely faithful to the notion of concreteness of objects, two principles emerge that allow object-focused environments to match the functionality of view-focused environments. The principle of availability makes functionality of objects accessible across contexts, and the principle of liveliness allows objects to participate in multiple contexts while retaining concreteness. All these elements help make objects seem more real in the objectfocused environment, hopefully lessening some of the cognitive burden of programming by reducing the distance between the programmer’s mental model of objects and the environment’s representation of objects. Programmers can get the sense that the objects on the screen are the objects in the program, and thus can think about working with objects rather than manipulating the environment. 1 INTRODUCTION Visual programming’s attractiveness stems in large part from its immediacy—programmers directly interact with program elements as if they were physical objects. These concrete visualizations of the program on the computer screen shape how programmers visualize the program within their mind, and may give them a foothold from which to think about the program: people find it easier to deal with the concrete than with the abstract. Object-oriented programming languages (even those that rely primarily on textual representations) strive toward the same end by providing objects as the fundamental elements in the program. Objects encapsulate and make concrete the elements of the program, including both the data to be manipulated and the behavior to be applied to them. Again, this paradigm works because most people find it easier to deal with the concrete than with the abstract. Yet while object-oriented programming languages assist the programmer by providing a concrete notion of objects, most programming environments for these languages push the programmer in the opposite direction, back toward the
[1] Randall B. Smith,et al. Self: The power of simplicity , 1987, OOPSLA 1987.
[2] Adele Goldberg,et al. Smalltalk-80 - the interactive programming environment , 1984 .
[3] Boris Magnusson,et al. The Mjølner Environment: Direct Interaction with Abstractions , 1988, ECOOP.
[4] Bay-Wei Chang,et al. Animation: from cartoons to the user interface , 1993, UIST '93.
[5] James D. Hollan,et al. Direct Manipulation Interfaces , 1985, Hum. Comput. Interact..