Human-oriented programming
The present work is based on the presupposition that programming is a branch of human activity, where human beings create programs exclusively for human beings and use computers for it at several stages of the process only. So, while programming we need to use not only computer science approaches, but also knowledge obtained within psychology.Historically, computer science has its roots in mathematics, so it is considered as the so-called exact science. Students specializing in computer science have no courses on the fundamentals of psychology yet. On the other hand, psychology is rather considered as a part of the humanities and is not interested in the domain of strict formalisms. So, interdisciplinary researches on psychology problems in programming will help us to improve software lifecycle processes, especially in the field of formal programming languages, and modelling process as the main part of program development as well.The known researches on structure of human memory, which have been conducted by G.A. Miller, K.A. Ericsson, W. Kintsch, T.R. Green, B. Shneiderman, show human limits for processing information.Human memory consists of two main parts (although they have no strict boundary and are not connected with real objects or some parts of the human brain, but rather reflect the conceptual level). These parts are short-term memory and long-term memory. The short-term memory demands no effort to load, but limits operation time and quantity of the operands. The long-term memory has no such limit but it demands hard efforts to load information. These memories can effectively operate jointly only. So, the main idea of this research is to consider any modelling process as a predetermined issue of the limits on human capacity for processing information about a complex object.There are three ways to increase the complexity level: education process, metaphors use, and the original problem decomposition into loosely connected parts. The last can be obtained by eitherremoving inessential details, or extracting semantically encapsulated entities, or dividing into loosely connected aspects, or hierarchy construction.So, we can formulate information complexity hypothesis based on the above-mentioned remarks:·Mental operations, which assume concurrent manipulation with a large number of semantic entities, are impossible for human being;·Dynamic mental operations with a complex information entity demand a model building,which must guarantee compliance with Miller's law;·Pragmatics characteristics of both the constructed model and the model description languagewe use ensue from interaction of the end user's short-term and long-term memories.This set of domain free principles has been called information complexity hypothesis (ICH).ICH creates compact and powerful conceptual framework for considering programming language features and other pragmatics issues.Brief overview of such problems as graphic versus textual programming languages problem and the challenges within the aspect oriented programming show that the ICH principles are applicable at various stages of program lifecycle and new programming language design.
Keywords
Authors
Name | Organization | |
Zyubin V.Ye. | Novosibirsk State University | zyubin@iae.nsk.su |
References
