O'Reilly logo

Making Software by Greg Wilson, Andy Oram

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Making the Tools Better by Shifting to Visual Programming

How do we make the tools better? One obvious possible answer is by moving to a more visual notation. Since David Smith’s icon-based programming language Pygmalion emerged [Smith 1975], the theory has been that maybe visual reasoning is easier for students. There certainly have been a lot of studies showing that visualizations in general helped students in computing [Naps et al. 2003], but relatively few careful studies.

Then, Thomas Green and Marian Petre did a head-to-head comparison between a dataflow-like programming language and a textual programming language [Green and Petre 1992]. They created programs in two visual languages that had been shown to work well in previous studies and in a textual language that had also tested well. Subjects were shown a visual program or a textual program for a short time, and then asked a question about it (e.g., shown input data or output results). Understanding the graphical language always took more time. It didn’t matter how much experience the subject had with visual or textual languages, or what kind of visual language. Subjects comprehended visual languages more slowly than textual languages.

Green and Petre published several papers on variations of this study [Green et al. 1991]; [Green and Petre 1996], but the real test came when Tom Moher and his colleagues [Moher et al. 1993] stacked the deck in favor of visual languages. Tom and his graduate students were using a visual notation, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required