Although detractors of functional programming sometimes claim that functional programming
is too difficult or counter-intuitive for most programmers to understand and use, evidence
to the contrary can be found by looking at the popularity of spreadsheets. The spreadsheet
paradigm, a first-order subset of the functional programming paradigm, has found wide
acceptance among both programmers and end users. Still, there are many limitations with
most spreadsheet systems. In this paper, we discuss language features that eliminate several
of these limitations without deviating from the first-order, declarative evaluation model.
The language used to illustrate these features is a research language called Forms/3. Using
Forms/3, we show that procedural abstraction, data abstraction and graphics output can be
supported in the spreadsheet paradigm. We show that, with the addition of a simple model of
time, animated output and GUI I/O also become viable. To demonstrate generality, we also
present an animated Turing machine simulator programmed using these features. Throughout
the paper, we combine our discussion of the programming language characteristics with
how the language features prototyped in Forms/3 relate to what is known about human
effectiveness in programming.
Continuous visual feedback is becoming a common feature in direct-manipulation programming systems of all klndsfrom demonstrational macro builders to spreadsheet packages to visual programming languages featuring direct manipulation. But does continuous visual feedback actually help in the domain of programming?There has been little investigation of this question, and what evidence there is from related domains points in conflicting directions. To advance what is known about this issue, we conducted an empirical study to determine whether the inclusion of continuous visual feedback into a direct-manipulation programming system helps with one particular task: debugging.Our results were that although continuous visual feedback did not significantly help with debugging in general, it did significantly help with debugging in some circumstances.Our results also indicate three factors that may help determine those circumstances.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.