|Keep It Simple, Stupid
Re: Beyond literate programming...by stefp (Vicar)
|on Sep 25, 2001 at 17:54 UTC
Trusting the principle A picture's worth one thousand words, I'd like to apply that to computer programming.
I dont think that visual programming is the general way to go except for specialized problems like automata. The real barrier to break is the ASCII monofont, monosized, monocolor conventions for programming languages. I call it the teletype barrier because these conventions have been shaped by that physical device. Typographically speaking, the only significant progress has been the generalization of lower case letters.
When a mathematician writes a formula (is that the right word in English?), it is often an algorithm, almost a program. A mathematician uses many alphabets and many fonts, indices and exponents. We can't. These conventions have been improved by generations of mathematician starting with Viéte (these starting date are often biased by nationality :)
Such "formulae" are certainly not graphical in the sense you implied, but the underlying conventions leads to a neat layout so that it is "parsed by our eyes" instead of being slowly deciphered.
I think Mathematica is an interactive environment that uses such conventions but it is expensive (1000$) and mosttly specialized in Mathematical rule based programming. I am not surprised when searching on thenet pages about the history of mathematical notation to trip on this conference by Steven Wolfram. His concern is the one that motivates this node Given its historical basis, it might have been that mathematical notation--like natural language--would be extremely difficult for computers to understand. But over the past five years we have developed in Mathematica capabilities for understanding something very close to standard mathematical notation. I will discuss some of the key ideas that made this possible, as well as some features of mathematical notation that we discovered in doing.
There is a chicken an egg problem here in getting a real interactive literate programming environment: which comes first, the typesetting rich language or the editing environment? But there is hope. Check TeXmacs, this is an WYSIWYG structural editor. Very roughly speaking, conceptually, this is a mix of TeX and emacs. If correctly extended, it could provide such an environment. And the perl communauty, with its motto TMTOWTDI, is more prepared than any other to accept possibly different representations for the same program.
As for classical litterate programming, the tools developped by Knuth are not interactive enough. But they are fine to generate a documentation to be read off-linelike The Stanford GraphBase; A Platform for Combinatorial Computing