

Article 79 of comp.lang.visual:
Path: mimsy!brillig.umd.edu!don
>From: [email-masked] (Don Hopkins)
Newsgroups: comp.lang.visual
Subject: PostScript as a visual language
Summary: a plug for PSIBER space
Keywords: PostScript, NeWS, visual programming, debugging
Message-ID: <[email-masked]>
Date: 10 Jan 90 08:08:47 GMT
References: <[email-masked]>
Sender: [email-masked]
Reply-To: [email-masked] (Don Hopkins)
Organization: U of Maryland, Dept. of Computer Science, Human Computer Interaction Lab, Coll. Pk., MD 20742
Lines: 166

In article <[email-masked]> [email-masked] (Timothy Lyle Smith) writes:
>I just started paying attention to this new group and I would
>like to say a few things.  What I've read so far is that there is
>a problem moving from a textual world to a graphical world.  Mostly
>due to a lack of being able to describe a concept used in programming
>by an easily recognizable icon.  But are not letters, and the words
>they are in, graphical symbols?  Perhaps an approach should be the
>combination of text and non-text graphical symbols.  This is the
>approach that I am going to use in my masters thesis.  The approach
>will use non-text graphics to show structure until the level of 
>detail needed to describe the structure becomes so fine that text
>becomes a better way of describing it.  One could use non-text to 
>describe the entire program but I think that as you approach detail like
>for example i++ it becomes easier for all involved to use text.
>
>  I realise that this approach is probably being used, and as I am
>just starting the real work on my thesis I would appreciate some
>pointers to papers/examples of this approach or any others.
>
>-- 
>Tim Smith     North Dakota State University,  Fargo, ND  58105
>UUCP:         ...!uunet!ndsuvax!ncsmith | 90% of the people on this planet
>BITNET:       [email-masked]    | are crazy and the rest of us are
>INTERNET:     [email-masked]  | in grave danger of contamination

You make some very good points. I don't understand why people think
that visual languages should totally avoid the use of text. Graphics
are excellent for representing structure, at least as well as
parenthesis, commas, indentation, and other types of punctuation used
in totally textual languages. (why do you think things like !@#$%^&*()
are known as "graphic characters"?)

Text can convey information so succinctly and unambiguously that
designing a language that forbids its use is like cutting off your
nose to spite your face.  Also, text characteristics such as font,
font style, point size, and even handwriting can convey a lot of
information in a small amount of space.

There will always be a need for names. If you give your variables
pictures instead of names, you will have to have some way to specify
them to refer to them. Do you really want to draw the same picture
over and over again? Or do you want to scroll throught a list of
thousands of different pictures looking for the one you want? It's
going to be a *long* time until computers are smart enough to
understand that we want to multiply the value of the variable that
looks like David Letterman wearing a bozo wig, to the address of the
Mona Lisa whose eyeballs follow the cursor around.

I think it's also important that you can use a language on a dumb old
24x80x2400 ASCII terminal like the one I'm typing this message on (my
trusty old Apple ][+). The point someone made that you can edit
*most* textual languages with *any* text editor, is a profound one
that visual language designers should keep in mind.

People have asked the question "how can you integrate graphics and
text in a device independant manner". I think PostScript answers this
question quite nicely. A lot of people don't realize it, but
PostScript is quite a powerful language. The NeWS window system, based
on an interactive object oriented extension to the PostScript
language, is an excellent environment for the simulation of visual
programming research. That's what I have been doing, and enclosed is
the introduction to a paper I presented at the 1989 Usenix Monterey
Graphics Conference on a visual extension to the PostScript language,
the "PSIBER Space Deck". (I *warned* you it was research simulation!)
If you'd like a copy of the whole paper, including PostScript
illustrations (about a meg), send me mail ([email-masked]) and I
will email it to you in several chunks. If you have NeWS (NeWS 1.1 or
Open Windows) I'd be glad to send you the source code. It's *ugly*
code -- we're talking rapid prototyping / exploratory programming /
proof of concept here. But it's actually quite useful for debugging
NeWS window system applications, which I use it for all the time
(mostly I've used it to debug itsself).

If there is enough demand, I can post the entire text of the paper
(sans illustrations, about 29K). [the PostScript illustrations are the
most interesting part though, but they're pretty hefty.]

	-Don
	 [email-masked]
	 ...!uunet!mimsy!don

                          The Shape of PSIBER Space:
               PostScript Interactive Bug Eradication Routines

                                 Don Hopkins

                             [email-masked]
                            University of Maryland
                        Human-Computer Interaction Lab
                         Computer Science Department
                         College Park, Maryland 20742

                                   ABSTRACT

    The PSIBER Space Deck is an interactive visual  user  interface  to  a
    graphical  programming  environment,  the NeWS window system.  It lets
    you display, manipulate, and navigate the data  structures,  programs,
    and  processes living in the virtual memory space of NeWS.  It is use-
    ful as a debugging tool, and as a hands on way to learn about program-
    ming in PostScript and NeWS.

1.  INTRODUCTION

    "Cyberspace. A consensual hallucination experienced daily by  billions
    of  legitimate  operators,  in  every nation, by children being taught
    mathematical concepts ... A graphic representation of data  abstracted
    from the banks of every computer in the human system. Unthinkable com-
    plexity. Lines of light ranged in the nonspace of the  mind,  clusters
    and constellations of data. Like city lights, receding ...."

         [Gibson, Neuromancer]

     The PSIBER Space Deck is a programming tool that lets you graphically
display, manipulate, and navigate the many PostScript data structures, pro-
grams, and processes living in the virtual memory space of NeWS.

     The Network extensible Window System (NeWS) is a multitasking object
oriented PostScript programming environment.  NeWS programs and data struc-
tures make up the window system kernel, the user interface toolkit, and even
entire applications.

     The PSIBER Space Deck is one such application, written entirely in
PostScript, the result of an experiment in using a graphical programming
environment to construct an interactive visual user interface to itself.

     It displays views of structured data objects in overlapping windows that
can be moved around on the screen, and manipulated with the mouse: you can
copy and paste data structures from place to place, execute them, edit them,
open up compound objects to see their internal structure, adjust the scale to
shrink or magnify parts of the display, and pop up menus of other useful com-
mands.  Deep or complex data structures can be more easily grasped by applying
various views to them.

     There is a text window onto a NeWS process, a PostScript interpreter with
which you can interact (as with an "executive").  PostScript is a stack based
language, so the window has a spike sticking up out of it, representing the
process's operand stack.  Objects on the process's stack are displayed in win-
dows with their tabs pinned on the spike.  (See figure 1) You can feed
PostScript expressions to the interpreter by typing them with the keyboard, or
pointing and clicking at them with the mouse, and the stack display will be
dynamically updated to show the results.

     Not only can you examine and manipulate the objects on the stack, but you
can also manipulate the stack directly with the mouse.  You can drag the
objects up and down the spike to change their order on the stack, and drag
them on and off the spike to push and pop them; you can take objects off the
spike and set them aside to refer to later, or close them into icons so they
don't take up as much screen space.

     NeWS processes running in the same window server can be debugged using
the existing NeWS debug commands in harmony with the graphical stack and
object display.

     The PSIBER Space Deck can be used as a hands on way to learn about pro-
gramming in PostScript and NeWS.  You can try out examples from cookbooks and
manuals, and explore and enrich your understanding of the environment with the
help of the interactive data structure display.