Mike Stephens wrote:
> I've just been re-reading Byte August 1981 - an edition dedicated to
> Smalltalk-80. Often people say Ruby has roots in Smalltalk (amongst
> other things) but the thing you notice is Smalltalk is visual ie it has
> a graphical interface. How is it that 28 years later we work by typing
> text into an editor?
>   
This is because "all" languages are text based.

There was one attempt at a language that plugged together data flow 
pipes. I can no longer remember the name.

It had devices that converted files into sequences and others to 
generate sequences of numbers. These were filtered and processed to 
generate other sequences, that were finally converted back into files 
(some on paper).  It all worked by pulling data. The sort would wait 
until the report requested the first record, when it would suck in all 
the incoming data, sort it, and return the first record, leaving 
internal status ready to return later records when (and if) required.

It failed. The following reasons contributed I think.
   Pulling the data through the structure is not sufficient. Some 
junctions need storage. This led to some unexpected restrictions on what 
could be written, with no easy way to overcome these.
   The obvious implementation of one process per widget was horrendously 
inefficient on the hardware of the day (286/386 era IIRC). Green threads 
may have worked better.
   The trade-off between time and memory use was hard to discern so it 
was easy to create programs that either ran for ages or ran out of 
memory.    IIRC the price was high (for unproven technology, that had no 
obvious market).

Attempting to change the paradigm of programming is hard (and fascinating).

Regards

Ian