Alternative Programming Interfaces for Alternative Programmers

Alternative Programming Interfaces for Alternative Programmers

Alternative Programming Interfaces for Alternative Programmers Toby Schachman New York University, Interactive Telecommunications Program [email protected] Abstract This paper explores the notion of alternative program- This paper seeks to broaden the view of what programming ming interfaces for the next generation of alternative pro- is, who programs, and how programming fits in to larger sys- grammers. tems. With growing frequency, people are approaching pro- Sections 2 and 3 define these terms, with the goal of ex- gramming from unlikely backgrounds such as the arts. Of- panding the scope of what is traditionally considered pro- ten these new programmers bring with them ways of work- gramming and who are traditionally considered program- ing which are incompatible with mainstream programming mers. practices, but which allow for new possibilities in program- Section 4 introduces a case study, Recursive Drawing. ming interfaces. This paper makes suggestions for the de- Recursive Drawing is a reimplementation of the textual pro- sign of these new programming interfaces. It presents as a gramming language Context Free as a graphical, directly case study and demonstration Recursive Drawing. Recur- manipulable programming interface. The following sections sive Drawing is a reimplementation of the textual program- are illustrated with examples from Recursive Drawing. ming language Context Free as a graphical, directly manip- Section 5 suggests an alternative to the linear nature of ulable interface. Instead of a compiler or interpreter, Recur- programming. Instead of compilers, programming interfaces sive Drawing’s programming interface is modeled as a con- are implemented as constraint solvers, which allows the pro- straint solver. This allows the programmer to modify the pro- grammer to modify the source code by modifying a running gram’s source code by manipulating the program’s output. process. Additionally, the design of the interface focuses on program Section 6 suggests shifting our focus from program con- transformation, rather than program construction. struction to program transformation. Section 7 discusses the strengths and weaknesses of Re- cursive Drawing and directly manipulable programming in- 1. Introduction terfaces in general. Section 8 concludes. This paper posits the emergence of a new generation of “al- ternative programmers.” This new generation has no pro- gramming background, but has a need to program comput- 2. What are Alternative Programming ers in order to realize their goals. Indeed they approach pro- Interfaces? gramming from unrelated backgrounds, from well-developed I will address programming interfaces from three perspec- disciplines with their own paradigms for understanding the tives: physical, conceptual, and social. world. This influx of new programmers provides an opportunity to radically shift the way programming is done. But to real- 2.1 Physical Interfaces ize this opportunity, we will need to be sensitive to the back- Physical interfaces concern the human body and the com- grounds and goals of this new generation, and to reconsider puter’s “body”–its hardware inputs and outputs–and the af- the activity of programming itself. fordances allowed by each of these bodies. The dominance of the text medium tends to dictate the form of physical interfaces. The human communicates to the computer through typing on the keyboard. The computer communicates back through whichever outputs the program addresses: the screen, speakers, or other peripherals. But even if a program is intended to create audio or graphical output, throughout much of the programming process the computer communicates to the programmer through text on [Copyright notice will appear here once ’preprint’ option is removed.] the screen (through the console). 1 2012/4/14 Communicating text back and forth through these inter- workflow is possible with text–syntax highlighting is a faces has proven to be effective because this medium can form of realtime feedback, for example–but the medium be made largely unambiguous (through formal languages), does not naturally support it. This is why textual inter- it emulates how we communicate intellectually with other faces supporting live coding are often augmented with humans (talking and writing), and we have evolved conven- visual inputs like sliders, as in Bret Victor’s “Inventing on tions (syntax and semantics) for densely packing abstract in- Principle” demonstrations [24] and OpenEnded Group’s formation into this form. Field [4]. Alternative physical interface possibilities for program- 3. Alternative physical interfaces engage different parts of ming include: the human brain. Textual interfaces engage the “lan- 1. Visual interfaces. These exploit the full graphical capabil- guage center” of our brain. We have difficulty express- ities of the screen rather than just text, and often encour- ing concepts to the computer which we cannot translate age human input through a spatial pointing device such as through this part of our brain. Yet many of our most a mouse, trackpad, or stylus, in addition to or replacing profound ideas we think of visually or kinesthetically. keyboard input. Alan Kay relates an anecdote about the mathematician Jacques Hadamard, who polled the great mathematicians 2. Touch screen interfaces. Building on visual interfaces, and scientists of his day about how they “do their thing.” but with the human touching the screen directly. Two Most replied that they did not think using mathematical potential advantages over mouse-based visual interfaces symbols (the language center of mathematics) but rather are a more direct feeling of manipulation of the screen’s imagined figures or even experienced sensations. Einstein output, and the expressive possibilities of multiple points replied, “I have sensations of a kinesthetic or muscular of contact (multitouch). type.” [15] 3. Arbitrary interfaces. These include the human communi- cating to the computer using physical gestures in space, 2.2 Conceptual Interfaces sounds, or the manipulation of peripheral sensors such as Conceptual interfaces concern the the metaphors we use to knobs and accelerometers. The computer communicates think about our programs. Examples include objects, actors, back visually, aurally, or haptically. structures, and streams. Conceptual interfaces are largely None of these alternative physical interfaces have pro- equivalent with the semantics of a programming language. duced widely adopted general purpose programming envi- They are the key mental structures that must exist solidly and ronments. However, they have had significant success in lim- isomorphically in the mind of the programmer and the mind ited domains. Patching environments such as Pd [20], Max of the computer (that is, in its implementation), in order for [19], vvvv [3], Quartz Composer [16], and Isadora [7] use programmer and computer to collaborate effectively. visual interfaces with dataflow semantics to program interac- 2.3 Social Interfaces tive audio and visual works. Rebecca Fiebrink’s Wekinator [11] uses arbitrary inputs (such as cameras and accelerome- Social interfaces concern programming’s relationship to so- ters) and arbitrary outputs (usually sound) to program novel ciety and how program creation interacts with social sys- musical instruments using a supervised learning workflow tems. It addresses the questions: both on the part of the computer (recognizing human ges- 1. What is programming and how does it relate to the rest of tures) and the human (learning to “play” the instrument). the world? I see three reasons to continue pursuing these alternative physical interfaces, in growing order of importance: 2. How should we program together? 1. We have the technology. The programming interfaces to- 3. Who should program? day are largely a result of the technological evolution A traditional, now humorously out-dated view, is that pro- of the computer going all the way back to mainframes gramming is calculating. Computer operators feed problems and teletypes. This historical bias suggests that alterna- into a (physically huge) computer which spits out an an- tive physical interfaces may have dormant potentials. swer. Calculation (usually prefaced with “cold”) is the an- 2. Alternative physical interfaces allow new workflows for tithesis of humane, creative activity. We have made inroads programming. Communicating text back and forth is towards a new perspective, where programming is seen as a turn-based experience. Programmer talks, computer a creative, collaborative process between human and ma- talks, etc. Alternative interfaces can allow for a contin- chine. This is largely due to pioneering work such as Ivan uous feedback loop between human and computer. For Sutherland’s Sketchpad [22] and Douglas Engelbart’s NLS example, each of the patch-based visual environments al- [10]. Yet the traditional view still maintains a hold on the low the user to adjust parameters with sliders, and see collective (un)consciousness. Many people are intimidated the results of these changes in realtime. This live coding by computers, or intimidated by programming. They see the 2 2012/4/14 computer as The Other, a soulless entity with whom they 2. Platforms and communities built around beginner-friendly, cannot engage. dive-right-in programming, such as Arduino [1] and Pro- The next question concerns how we relate to our human cessing [12]. collaborators in programming. People have always worked 3. The ubiquitous use of computers as a means of creative together

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us