Deutsch limit

Last updated

An example program in the visual programming language DRAKON, containing 50 primitives Dutch cryo Moscow.png
An example program in the visual programming language DRAKON, containing 50 primitives

The Deutsch limit is an aphorism about the information density of visual programming languages originated by L. Peter Deutsch that states:

Contents

The problem with visual programming is that you can't have more than 50 visual primitives on the screen at the same time. [1]

The term was made up by Fred Lakin, after Deutsch made the following comment at a talk on visual programming by Scott Kim and Warren Robinett: "Well, this is all fine and well, but the problem with visual programming languages is that you can't have more than 50 visual primitives on the screen at the same time. How are you going to write an operating system?" [1] [2] [3]

The primitives in a visual language are the separate graphical elements used to build a program, and having more of them available at the same time allows the programmer to read more information. This limit is sometimes cited as an example of the advantage of textual over visual languages, [4] pointing out the greater information density of text, and posing a difficulty in scaling the language. [5] [6]

However, criticisms of the limit include that it is not clear whether a similar limit also exists in textual programming languages; [1] and that the limit could be overcome by applying modularity to visual programming as is commonly done in textual programming.

See also

Related Research Articles

<span class="mw-page-title-main">Graphical user interface</span> User interface allowing interaction through graphical icons and visual indicators

A graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.

<span class="mw-page-title-main">User interface</span> Means by which a user interacts with and controls a machine

In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine from the human end, while the machine simultaneously feeds back information that aids the operators' decision-making process. Examples of this broad concept of user interfaces include the interactive aspects of computer operating systems, hand tools, heavy machinery operator controls and process controls. The design considerations applicable when creating user interfaces are related to, or involve such disciplines as, ergonomics and psychology.

<span class="mw-page-title-main">Sketchpad</span> 1963 computer program written by Ivan Sutherland

Sketchpad is a computer program written by Ivan Sutherland in 1963 in the course of his PhD thesis, for which he received the Turing Award in 1988, and the Kyoto Prize in 2012. It pioneered human–computer interaction (HCI), and is considered the ancestor of modern computer-aided design (CAD) programs as well as a major breakthrough in the development of computer graphics in general. For example, the graphical user interface (GUI) was derived from Sketchpad as well as modern object-oriented programming. Using the program, Ivan Sutherland showed that computer graphics could be used for both artistic and technical purposes in addition to demonstrating a novel method of human–computer interaction.

A modeling language is any artificial language that can be used to express data, information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure Programing language.

In computing, an icon is a pictogram or ideogram displayed on a computer screen in order to help the user navigate a computer system. The icon itself is a quickly comprehensible symbol of a software tool, function, or a data file, accessible on the system and is more like a traffic sign than a detailed illustration of the actual entity it represents. It can serve as an electronic hyperlink or file shortcut to access the program or data. The user can activate an icon using a mouse, pointer, finger, or voice commands. Their placement on the screen, also in relation to other icons, may provide further information to the user about their usage. In activating an icon, the user can move directly into and out of the identified function without knowing anything further about the location or requirements of the file or code.

<span class="mw-page-title-main">Screen reader</span> Assistive technology that converts text or images to speech or Braille

A screen reader is a form of assistive technology (AT) that renders text and image content as speech or braille output. Screen readers are essential to people who are blind, and are useful to people who are visually impaired, illiterate, or have a learning disability. Screen readers are software applications that attempt to convey what people with normal eyesight see on a display to their users via non-visual means, like text-to-speech, sound icons, or a braille device. They do this by applying a wide variety of techniques that include, for example, interacting with dedicated accessibility APIs, using various operating system features, and employing hooking techniques.

<span class="mw-page-title-main">Drag and drop</span> Action in computer graphic user interfaces

In computer graphical user interfaces, drag and drop is a pointing device gesture in which the user selects a virtual object by "grabbing" it and dragging it to a different location or onto another virtual object. In general, it can be used to invoke many kinds of actions, or create various types of associations between two abstract objects.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

<span class="mw-page-title-main">Graphical widget</span> Element of interaction in a graphical user interface

A graphical widget in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a computer user interacts with through direct manipulation to read or edit information about an application. User interface libraries such as Windows Presentation Foundation, Qt, GTK, and Cocoa, contain a collection of controls and the logic to render these.

In computer science, interactive computing refers to software which accepts input from the user as it runs.

<span class="mw-page-title-main">Tangible user interface</span>

A tangible user interface (TUI) is a user interface in which a person interacts with digital information through the physical environment. The initial name was Graspable User Interface, which is no longer used. The purpose of TUI development is to empower collaboration, learning, and design by giving physical forms to digital information, thus taking advantage of the human ability to grasp and manipulate physical objects and materials.

A read–eval–print loop (REPL), also termed an interactive toplevel or language shell, is a simple interactive computer programming environment that takes single user inputs, executes them, and returns the result to the user; a program written in a REPL environment is executed piecewise. The term usually refers to programming interfaces similar to the classic Lisp machine interactive environment. Common examples include command-line shells and similar environments for programming languages, and the technique is very characteristic of scripting languages.

<span class="mw-page-title-main">Hiroshi Ishii (computer scientist)</span> Japanese computer scientist

Hiroshi Ishii is a Japanese computer scientist. He is a professor at the Massachusetts Institute of Technology. Ishii pioneered the Tangible User Interface in the field of Human-computer interaction with the paper "Tangible Bits: Towards Seamless Interfaces between People, Bits and Atoms", co-authored with his then PhD student Brygg Ullmer.

<span class="mw-page-title-main">Text processing</span> Creating or manipulating electronic text

In computing, the term text processing refers to the theory and practice of automating the creation or manipulation of electronic text. Text usually refers to all the alphanumeric characters specified on the keyboard of the person engaging the practice, but in general text means the abstraction layer immediately above the standard character encoding of the target text. The term processing refers to automated processing, as opposed to the same manipulation done manually.

An authoring system is a program that has pre-programmed elements for the development of interactive multimedia software titles. Authoring systems can be defined as software that allows its user to create multimedia applications for manipulating multimedia objects.

<span class="mw-page-title-main">DRAKON</span> Algorithm mapping tool

DRAKON is a free and open source algorithmic visual programming and modeling language developed as part of the defunct Soviet Union Buran space program in 1986 following the need in increase of software development productivity. The visual language provides a uniform way to represent processes in flowcharts.

A projection augmented model is an element sometimes employed in virtual reality systems. It consists of a physical three-dimensional model onto which a computer image is projected to create a realistic looking object. Importantly, the physical model is the same geometric shape as the object that the PA model depicts.

A smart object is an object that enhances the interaction with not only people but also with other smart objects. Also known as smart connected products or smart connected things (SCoT), they are products, assets and other things embedded with processors, sensors, software and connectivity that allow data to be exchanged between the product and its environment, manufacturer, operator/user, and other products and systems. Connectivity also enables some capabilities of the product to exist outside the physical device, in what is known as the product cloud. The data collected from these products can be then analyzed to inform decision-making, enable operational efficiencies and continuously improve the performance of the product.

<span class="mw-page-title-main">PWCT</span> Visual programming language

PWCT is a free open source visual programming language for software development.

References

  1. 1 2 3 McIntyre, David (March 10, 1998). "Comp.Lang.Visual - Frequently-Asked Questions List". Faqs.org .
  2. Begel, Andrew (May 24, 1996). "LogoBlocks: A Graphical Programming Language for Interacting with the World" (PDF). Cambridge, MA: MIT Media Lab. Archived from the original (PDF) on March 3, 2016. Retrieved June 6, 2014.
  3. Sempere, Andrew (October 2005). "Animatronics, Children and Computation" (PDF). Educational Technology & Society . 8 (4): 11–21. ISSN   1436-4522. Archived from the original (PDF) on April 16, 2006.
  4. Weis, Torben; Knoll, Mirko; Ulbrich, Andreas; Mühl, Gero; Brändle, Alexander (April 2007). "Rapid Prototyping for Pervasive Applications" (PDF). IEEE Computer Society. Archived from the original (PDF) on April 21, 2012.
  5. Ullmer, Brygg; Ishii, Hiroshi (2001). "Emerging Frameworks for Tangible User Interfaces" (PDF). In Carroll, John M. (ed.). Human Computer Interaction in the New Millennium. Archived from the original (PDF) on July 14, 2014.
  6. Ullmer, Brygg; Ishii, Hiroshi; Jacob, Robert J. K. (March 2005). "Token+Constraint Systems for Tangible Interaction with Digital Information". ACM Transactions on Computer-Human Interaction . 12 (1): 81–118. CiteSeerx:  10.1.1.90.4969.