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