[comp.lang.smalltalk] Foible: a framework for visual programming environments

johnson@n.cs.uiuc.edu (Ralph Johnson) (03/16/91)

Foible is a framework for visual programming environments that is
written in Smalltalk-80.  Source and documentation is now available
by ftp or by a mail archiver.  The source includes several sample
visual languages.  FlowKit is based on dataflow and looks sort of
like LabView.  Sh++ is a visual shell for Unix.  SDS supports system
dynamics simulation.  ObjectLink is an attempt to make a visual
Smalltalk.

The rest of this message says a little about Foible and what it is
good for, and the end describes how to get it.

Foible is an object-oriented framework, i.e. it is the skeleton of
an application that is design to be extended and reused.  It is
a framework for visual programming environments.  I noticed that
lots of visual programming languages looked an aweful lot like
graph editors.  Foible is basically a customizable graph editor.
If I had to do it over again I would build it upon a more general
purpose base like HotDraw, but nothing like HotDraw was available
when I started the project four or five years ago.

Foible is the result of half a dozen MS theses.  Each generation
rewrote it and improved it.  The last few people have concentrated
more on using it and not on improving it, so I guess that means
that it is not good enough to use.  SDS was a class project, so
that means that it is not hard to learn.

Foible is written in Smalltalk-80.  It runs on both ParcPlace
Smalltalk 2.5 and on Tektronix Smalltalk.  It will probably be
a while before it runs on 4.0.  If you don't know Smalltalk then
you probably should find someone who does to help you build an
image.

The only paper that has been published relating to Foible is the
one on multiparadigm visual programming by Jose Borges and myself
in the 1990 visual programming workshop.  However, the masters
thesis by Bill Jindrich is the closest thing we have to a user
manual.  The guys who did SDS didn't ask me any questions about
Foible, they learned it all from the thesis, so you probably can
too.  (Though questions are welcome).  ObjectLink and Sh++ also
have documentation.

You can find the source and documentation for Foible by anonymous
ftp to st.cs.uiuc.edu in /pub/st80_pre4/Foible.  Note that the
subdirectories are already 'tarred' and compressed, so ftp is
easy.  Be sure to select 'binary' mode.

If you do not have ftp access to the internet, there is a mail
archiver.  Mail to 'archive-server@st.cs.uiuc.edu'.  Include
the one line 'help' and that will get you started.  Note that
you DO NOT want to have the entire Foible directory mailed to
you at once, because you will get both the 'tarred' and the
regular version of each file.  
  send st80_pre4 Foible foible foible-paper.PS
will get you Bill Jindrich's thesis.
  send st80_pre4 Foible foible
will get you the entire Foible framework.  It is 732K, including
the icon library and the documentation.  The 'help' will tell you
how to control how files are encoded when they are sent back to
you, or you can just hope for the best and ask for the paper.

Each subdirectory is supposed to have an index so that
mail users can retrieve just what they want.  However,
the last time I looked, not all subdirectories had them.
Someone will have to fix that.

We hope to make this site a major Smalltalk archive, but we
are starting small.  Some of you are sure to have problems.
If you have problems about accessing the archive, send mail
to archive@st.cs.uiuc.edu.   If you have questions about Foible,
send mail to me.

Ralph Johnson -- University of Illinois at Urbana-Champaign
		 johnson@cs.uiuc.edu