[comp.lang.forth] Declining Forth popularity.

stever@tree.uucp (Steve Rudek) (12/14/89)

As you know, I've been playing "devil's advocate" in a number of previous
postings and I've been disparaging Forth (though mainly Forth
implementations...it's tough to disparage a language which won't hold
still :-).  It seems to me that Forth use is in decline.  It's possible I'm
mistaken, but I've noticed that computer magazines have increasingly 
distanced themselves from the language and that even past Forth implementors
seem anxious to dissociate themselves from Forth.

For example, the only reference to Forth you'll see in current issues
of Dr. Dobbs is in the "Structured Programming" column where the
column logo shows a tree with various programming language names
labelling the branches.  The Forth branch is broken and falling off the
tree.  The logo dates back to when Forth articles
were almost as common as C articles...then it was cute but now it
seems more sarcastic.  And when was the last time that Ray Duncan admitted
in PC Magazine that he was a Forth vendor...or that he even used the language?
DOES he still use the language or does he only sell it?  He's promoting
C and assembler and MS-DOS and OS/2...but no Forth.  In another magazine I
read a glowing report about the "Actor" language.  The article mentioned how
Actor's author, Charles Duff (?), previously designed a neat language
called "Neon" for the Mac.  I thought it was interesting the way the 
article left of mention of the fact that Neon was a Forth derivative. Forgive
my paranoia, but I got the feeling that piece of information was left out
deliberately.  And notice how hidden are the few remaining ads for Forth
implementations.  I got a 150 page catalog from The Programmers Shop which
contained probably 1500 language products...but only one Forth
implementation. 

What happened?  WHY did it happen?  What (if anything) can be done to reverse
or at least halt the declining popularity of Forth?

In <14874@well.UUCP> jax@well.UUCP (Jack J. Woehr) said:
> 	Forth showed a path for the future, but the future diverged
> perversely. Imagine if it had been Forth, not hopelessly crippled BASIC,
> that had been provided to every purchase of a late-'seventies micro ???

The implication is that Forth would now be the premiere language for
computer programmers, I guess?  I think it's more likely that far fewer
microcomputers would have been sold and that the microcomputer revolution
would have been delayed by several years until other languages came around.
Other than BASIC and assembler, Forth was the only language easily available 
for the first few years of microcomputers.  A lot of people were dissatisfied
with BASIC for a variety of reasons and were highly motivated to adapt
themselves and their projects to Forth.  For those who needed a high level
language with copy protection of source code or speed or structure
Forth was the only game in town.  So a lot of people eagerly investigated
Forth...and concluded that they'd rather not play at all than play with
Forth.  It was much easier for me to learn my first assembly language than
to learn Forth; I *still* don't know Forth well enough to write a decent video
game but I could write one in assembly, or C, or Pascal, or BASIC.

For some strange reason, approximately every three years I get a hankering
to take another shot at Forth.  It BUGS me that I have such a tough time
with Forth--I learned APL and LISP okay and they aren't that "conventional".  
So here I am in another of my Forth cycles.  This time, though, I have F83
(with F-PC on the way) and the Kelly and Spies "Text and Reference" and I
suspect I'll survive the learning curve.  Whether I'll *like* Forth or not
I won't know for a while.  However, I *do* like a number of aspects of the
language considerably (the modularity, the extensibility, the speed) or I
wouldn't keep coming back to it.

Anyway, I've developed some definite ideas about why Forth has failed to
catch on except as a "cult" and "hardware hacker's" language.  And I have
some definite ideas about what might be done to improve its popularity.
I've shared some of my thoughts with you folks in this and earlier postings.
I'd like to read more of your ideas, though, before I present more of my
own.  Here's the challenge:  Suppose your life depended on getting Forth
established as a (reasonably) popular language.  Further suppose that you
had considerably programming and MARKETING resources.  What would you do?
-- 
{pacbell!sactoh0! OR ucdavis!csusac!}tree!stever

bryan@intvax.UUCP (Jon R Bryan) (12/15/89)

From article <1989Dec14.013516.24694@tree.uucp>, by stever@tree.uucp (Steve Rudek):
> ... I've noticed that computer magazines have increasingly 
> distanced themselves from the language and that even past Forth implementors
> seem anxious to dissociate themselves from Forth.
> 
Ray Duncan and Jack Woehr are still plugging Forth regularly in
"Embedded Systems Programming" magazine.  Nice mag, guys.  I've gotten
several useful things from it already.

-- 
Jon R. Bryan	<=>	bryan@intvax.UUCP
Sandia National Laboratories
Intelligent Machine Principles Division
Albuquerque, New Mexico

peter@ficc.uu.net (Peter da Silva) (12/16/89)

In article <1989Dec14.013516.24694@tree.uucp> stever@tree.uucp (Steve Rudek) writes:
> What happened?  WHY did it happen?  What (if anything) can be done to reverse
> or at least halt the declining popularity of Forth?

One of FORTH's biggest advantages was that it allowed a complete development
environment with very limited resources. We had at one time a multi-user
development system with only 16K of RAM! But it cost as much as a loaded
386-based UNIX box does now.

And that's the point. Resources are now cheap enough that FORTH's greatest
advantage is vanishing.
-- 
`-_-' Peter da Silva. +1 713 274 5180. <peter@ficc.uu.net>.
 'U`  Also <peter@ficc.lonestar.org> or <peter@sugar.lonestar.org>.
"It was just dumb luck that Unix managed to break through the Stupidity Barrier
and become popular in spite of its inherent elegance." -- gavin@krypton.sgi.com

brunjes@rtech.rtech.com (roy brunjes) (12/16/89)

In article <1989Dec14.013516.24694@tree.uucp> stever@tree.uucp (Steve Rudek) writes:
>
>Anyway, I've developed some definite ideas about why Forth has failed to
>catch on except as a "cult" and "hardware hacker's" language.  And I have
>some definite ideas about what might be done to improve its popularity.
>I've shared some of my thoughts with you folks in this and earlier postings.
>I'd like to read more of your ideas, though, before I present more of my
>own.  Here's the challenge:  Suppose your life depended on getting Forth
>established as a (reasonably) popular language.  Further suppose that you
>had considerably programming and MARKETING resources.  What would you do?
>
>{pacbell!sactoh0! OR ucdavis!csusac!}tree!stever

Well, for starters, I'd have standard wordsets developed that ran unchanged
on many different hardware/OS platforms.  So that keyboard input, mouse input
(where appropriate), displaying text, displaying graphics, sound, etc. all
"looked" identical in terms of the Forth you would code to make it happen.
String handling is one area that Forth let's you "roll your own" (there's
that phrase again ...) way of doing things.  Provide one way of doing it
for the guy who doesn't want to roll his own that is full featured enough
that he doesn't have to implement extensions to do basic stuff!

In fact, maybe support a higher level abstraction of a Forth universe
and develop smaller universes on top that provide consistent ways to
do things (consistent across platforms) for those who just want to
do the "usual" things.  For those who really want to do something unique,
there's the full unrestricted Forth "universe" to play in.

For the learner of Forth, this layered approach would mean a learning curve
that seemed more like a few shorter ones, with a language that always had room
to grow into.  It should be possible to write USEFUL programs in a few
days/weeks if the higher level universes were well thought out.

Surely the Forthers of the world could agree on some minimal set of wordsets
to implement?  It's kind of like what I understand the ANSI committee is
trying to do with the language (but I do not follow what they do, so
no one quote me on that).  String handling, graphics, sound, windowing,
floating point ... all of these come to mind as essential wordsets for
general purpose computing in the 90's.  There are arguably many others.

As for marketing ... I am not talented in this area in the least.  I suppose
the real way to get something to catch on is to have successful applications
attributed to the language.  Any independently wealthy Forth sympathisers
willing to fund some development to yield such an application!?

Anyone else care to respond to this interesting question posed by Steve?

Roy

Disclaimer:  My opinions, not my employer's etc.

bouma@cs.purdue.EDU (William J. Bouma) (12/16/89)

     When I first started reading net.news about two years ago I was
     amazed, no, shocked to find a group devoted to the forth language.
     No one had even heard of it at my undergrad institution. Few people
     here have heard of it and none that I have met have ever used it.
     These are places that teach computer science folks! If it isn't
     being taught then people have to learn about it on their own. Given
     that there are so many accepted languages powerful enough to do
     real work, what motivation is there to seek out a new one?

In article <1989Dec14.013516.24694@tree.uucp> stever@tree.uucp (Steve Rudek) writes:
>In <14874@well.UUCP> jax@well.UUCP (Jack J. Woehr) said:
>> 	Forth showed a path for the future, but the future diverged
>> perversely. Imagine if it had been Forth, not hopelessly crippled BASIC,
>> that had been provided to every purchase of a late-'seventies micro ???
>
>The implication is that Forth would now be the premiere language for
>computer programmers, I guess?  I think it's more likely that far fewer
>microcomputers would have been sold and that the microcomputer revolution
>would have been delayed by several years until other languages came around.

     I will have to agree with the jax on this one. If there had been no
     basic, but only forth for the early micros I do not believe it would
     have affected their sale at all. Most people just use what they are
     given since they don't know there is anything better. Those who used
     canned software wouldn't have known the difference, and those who
     wrote the programs back then were mostly hackers at heart anyway.

>Other than BASIC and assembler, Forth was the only language easily available 
>for the first few years of microcomputers.  A lot of people were dissatisfied
>with BASIC for a variety of reasons and were highly motivated to adapt
>themselves and their projects to Forth.  For those who needed a high level
>language with copy protection of source code or speed or structure
>Forth was the only game in town.  So a lot of people eagerly investigated
>Forth...and concluded that they'd rather not play at all than play with

     People are basically lazy 8^). They were faced first with finding an
     implementation of forth that would run on their micros, then with
     learning, on their own, the differences it presented. It does not
     surprise me that some people take one look at forth and decide it
     isn't worth the effort. But if they were given forth rather than
     basic, and had not already been molded into the basic way of thinking,
     they would have used forth and found it acceptable to do work.

>Forth.  It was much easier for me to learn my first assembly language than
>to learn Forth; I *still* don't know Forth well enough to write a decent video
>game but I could write one in assembly, or C, or Pascal, or BASIC.
>For some strange reason, approximately every three years I get a hankering
>to take another shot at Forth.  It BUGS me that I have such a tough time
>with Forth--I learned APL and LISP okay and they aren't that "conventional".  

     Could you isolate what it is about forth that is giving you such a
     hard time? I don't see how it could be giving you any trouble if you
     have learned all these other languages. Just take your lisp program,
     remove the parenthesis, and write it backwards. You now have a forth
     program 8^). Perhaps you are having trouble because you have to learn
     it on your own. All of these other languages were taught to you in
     school? If you want forth to become more popular, you have to get it
     into the schools.
-- 
Bill <bouma@cs.purdue.edu>  ||  ...!purdue!bouma 

trier@wrangell.scl.cwru.edu (Stephen Trier) (12/16/89)

I think Peter hit on one of the big reasons for Forth's decline.  When I
got involved in Forth, a 16K Tandy CoCo was a mid-range machine, and Forth
is excellent at being a memory miser.  (My first attempt to implement Forth
was on a CoCo.)  I haven't seen Forth really improve much with the times.
C and BASIC both had more or less "standard" dialects, but Forth left quite
a bit more up to its implementors.

Another fault of many Forths are the throwbacks to the days when Forth was
an operating system, with those terrible 1024-character editing screens.

What we need is a more user-friendly, highly interactive Forth, with sensible
text-editor style editing.  Build some standard libraries for it, and get
everyone to use them.  (How?  I don't know! :-) )  Call it Turbo Forth,
ignoring the fact that Forth's already _fast_, and give it away or sell it.

I know that many Forth systems try to provide some of these features, but very
few of those maintain much cross-compatibility with "standard" Forths.
                  <=> Stephen Trier    seldon!sct@skybridge.SCL.CWRU.Edu
                                       sct@po.CWRU.Edu
                                       trier@skybridge.scl.CWRU.Edu
                                       {sun,att,decvax}!cwjcc!skybridge!trier

wmb@SUN.COM (12/16/89)

> Surely the Forthers of the world could agree on some minimal set of wordsets
> to implement?  It's kind of like what I understand the ANSI committee is
> trying to do with the language

Agreement is a very difficult thing to achieve.  For example, believing
that memory allocation is important, I convened a working group at this
summer's Rochester Forth Conference.  The group consisted of most of the
Forth vendors at the conference, as well as any other interested parties.
We worked out the specification for a memory allocation wordset which was
acceptable to all concerned.

I presented the proposal at the October ANSI Forth meeting.  It was
defeated.  There were violent disagreements in all directions, many of
them mutually incompatible.  One person rejected it because it could
not allocate memory in different segments on the PC (which would be
useless, because the ANSI standard has absolutely no words for accessing
such memory even if it could be allocated).  I was so frustrated by
the experience that I had to get up and leave the room.

Frankly, I wonder why I bother.

The process of obtaining agreement on any such issue is a political
problem, from start to finish.  Politics is hard.  In this arena,
the payoff is entirely unclear.  Programming is a lot more fun.

On the brighter side, the ANSI committee has made some progress; there
is a file access wordset.  It's woefully incomplete, but it's a lot
better than nothing.  The floating point wordset is pretty good.

I have little hope that the Forth community will come to any sort of
agreement whatsoever on issues of graphics and windowing, considering
that the computer industry at large is involved in a massive battle over
which window system becomes the standard (Microsoft can't even decide
between it's own two window systems, let alone the raging battles between
the various Unix camps).

My fear is that the ANSI Forth standard is "too little, too late".

Mitch

gary@softway.oz (Gary Corby) (12/16/89)

stever@tree.uucp (Steve Rudek) writes:

>Suppose your life depended on getting Forth
>established as a (reasonably) popular language.  Further suppose that you
>had considerably programming and MARKETING resources.  What would you do?

I would die.

I can't imagine forth without reverse polish, and I can't
imagine a (reasonably) popular language that isn't
intuitive.  Reverse polish notation is anything but
intuitive.  Therefore I'm in trouble.

I feel very much as you do about forth and have had the same
experience trying to learn it thoroughly.  I keep thinking
this could be a great language but every time I try to do
something serious with it frustration eventually sets in.
This is normally due to the vast effort I have to go through
to do things which are built into other languages.  Example:
Formatted I/O.  Yes, it can be done, but why don't I get
standard libraries to do all the work for me?

The major advantages seem to me to be that it's a very fast
yet portable language.  Unfortunately those are also the 
marketing advantages of C.  Now I know a lot of forth
enthusiasts will point out lots of ways in which forth is
faster than C.  That's true.  But the difference isn't big
enough to overcome the fact that C has a more obvious syntax
for the average programmer.  Had the harware remained at the
same primitive level of 15 or 20 years ago I'm sure forth
would have prospered.  As it is if your C programs aren't
fast enough then you go down to the corner store and buy a
faster machine.

So to make it more acceptable to the world I think you need
the following:

1)	Standard libraries for various common functions.
2)	Removal of reverse polish syntax, but don't ask me how.
3)	A few successful public domain systems written in forth.
	This would force people to learn the language.
4)	Microsoft and IBM announce that their next offering will
	be implemented in forth.

Point 3 is the most accessible to the common forth enthusiast.
Has anyone, for example, written a news reader in forth?  How
about a TCP/IP implementation?  

Gary Corby

jax@well.UUCP (Jack J. Woehr) (12/17/89)

In article <1989Dec14.013516.24694@tree.uucp> stever@tree.uucp (Steve Rudek) writes:
>
	... lots deleted here and there below ..

>It seems to me that Forth use is in decline.  

	Possibly in program development for IBM PC's. I.e., what
Forth runs under Windows?

	But Forth is BOOMIN in embedded systems and realtime control
as witness the December issue of Embedded Systems Programming,
the January issue of Dr. Dobbs, and many other sources.

>It's possible I'm
>mistaken, but I've noticed that computer magazines have increasingly 
>distanced themselves from the language and that even past Forth implementors
>seem anxious to dissociate themselves from Forth.

	Not ESP or Dr. Dobbs. Implementors disassociating selves? Who?
Your Ray Duncan example refuted by his column in the december ESP.
Dr. Dobbs example refuted by January issue.

>And notice how hidden are the few remaining ads for Forth
>implementations.  I got a 150 page catalog from The Programmers Shop which
>contained probably 1500 language products...but only one Forth
>implementation. 

	Forth programmers don't *need* all the expensive tools
that
other programming langauges require. No "lint" for example! No
expensive debuggers. I  don't know why programmers shop, etc.
don't carry H/S Forth, but so what?

>
>What happened?  WHY did it happen?  What (if anything) can be done to reverse
>or at least halt the declining popularity of Forth?
>
	What's happening is that Forth has gravitated to its natural
niche, systems where Forth is the beginning and end of it, i.e., 
embedded systems. At Vesta Technology, Inc., we sell a variety of
board for control programming with standalone Forth. We don't
need no steenking operating system! Vesta is a five-year-old
startup, we're growing over ten percent this  year in sales this.
Over the five years of Vesta, annual growth is well over 20%. 

>In <14874@well.UUCP> jax@well.UUCP (Jack J. Woehr) said:
>> 	Forth showed a path for the future, but the future diverged
>> perversely. Imagine if it had been Forth, not hopelessly crippled BASIC,
>> that had been provided to every purchase of a late-'seventies micro ???
>
>The implication is that Forth would now be the premiere language for
>computer programmers, I guess?  I think it's more likely that far fewer
>microcomputers would have been sold and that the microcomputer revolution
>would have been delayed by several years until other languages came around.

	I disagree. Forth is a great operating system. I launch C
applications, ASM applications, etc., from my standalone Forth
single-boards.

	If the Amiga had been programmed in Forth, It would have
been ready a year sooner and would have offered interpretive graphics
from the command line ...

>I *still* don't know Forth well enough to write a decent video
>game but I could write one in assembly, or C, or Pascal, or BASIC.

	Foof! Then what is all this noise on the net about Forth
that we hear from you? :-)

>
>For some strange reason, approximately every three years I get a hankering
>to take another shot at Forth.  It BUGS me that I have such a tough time
>with Forth--I learned APL and LISP okay and they aren't that "conventional".  
>So here I am in another of my Forth cycles.  This time, though, I have F83
>(with F-PC on the way) and the Kelly and Spies "Text and Reference" and I
>suspect I'll survive the learning curve.  Whether I'll *like* Forth or not
>I won't know for a while.  However, I *do* like a number of aspects of the
>language considerably (the modularity, the extensibility, the speed) or I
>wouldn't keep coming back to it.
>
	Now you're getting smart, Jethro ... :-)


>Here's the challenge:  Suppose your life depended on getting Forth
>established as a (reasonably) popular language.  Further suppose that you
>had considerably programming and MARKETING resources.  What would you do?

	I'd port something very much like JForth to every operating
system in the free world. Then I'd give away about 10,000 copies to
critical nodes in the programming world. And I'd advertise the
shit out of it. "Hi, I'm Jessica Hahn, and I program in Jforth!" :-)

{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}
{} jax@well     ." Sysop, Realtime Control and Forth Board"      FIG      {}
{} jax@chariot  ." (303) 278-0364 3/12/2400 8-n-1 24 hrs."     Chapter    {}
{} JAX on GEnie       ." Tell them JAX sent you!"             Coordinator {}
{} jax@well.sf.ca.us                                                      {}
{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}

peter@ficc.uu.net (Peter da Silva) (12/18/89)

Some random comments:

	(1) ANSI Forth standardisation is gonna be a dead end. Forth folks
	    go with popular implementations, which is why FigForth and
	    PolyForth together basically define Forth-83.
	(2) There WAS a micro with Forth as the basic language. It was the
	    Jupiter Ace: basically a Sinclair ZX81 with Forth instead of BASIC.
	(3) Where's the Forth source on the net?

Are there any FORTH source mailservers?

If not, would someone on the Arpanet care to set one up? I've just sent away
for the mailserver software from twwells.com, and you can too. Too many of us
can't FTP.
-- 
`-_-' Peter da Silva. +1 713 274 5180. <peter@ficc.uu.net>.
 'U`  Also <peter@ficc.lonestar.org> or <peter@sugar.lonestar.org>.
"It was just dumb luck that Unix managed to break through the Stupidity Barrier
and become popular in spite of its inherent elegance." -- gavin@krypton.sgi.com

dbin@norsat.UUCP (Dave Binette) (12/19/89)

Maintaining old Forth code after a 2 year absence really brought home the
ugliness of the 1K editing screens.

Elegant to implement possibly, but awful to use.

Peter Da Silvas comments about makeing a more "mainstream" forth rang
true for me.

I would like to see..
Standard ascii text files for source (LMI has this)
    Function tags (like ctags).
Btree support.
Postfix user data entry facilities.
A window management module.
Memory management routines.

All part of a standard distribution.

My recent involvment has not been in writing NEW Forth code
but rather converting existing applications to C.

Painfull as it is, when i revisit perfectly good working Forth code
and want to do a rewrite or convert to a larger >64k based implimentation
I realize that many hacks done to the kernel to provide a sufficient
base for real user application are just too fuzzy and require  many
hours of study to determine all the side effects.

Converting an existing application to a new implimentation of forth
is NOT a big win, w~rhen the alternative is a rewrite in C especially
when the person paying the bill expects significant enhancements that
are much easier to provide in C and the plethora of PD packages available
for windowing etc.

Forths miserly approach to memory usage (a good thing) really bucks the
horrible trend that Microsloth embraces of using more resources than are
usually available, still Forths approach to memory is very limiting.

I like malloc() and its children.

---
uucp:  {uunet,ubc-cs}!van-bc!norsat!dbin | 302-12886 78th Ave
bbs:   (604)597-4361     24/12/PEP/3     | Surrey BC CANADA
voice: (604)597-6298     (Dave Binette)  | V3W 8E7              */

stever@tree.uucp (Steve Rudek) (12/19/89)

In article <8912160503.AA25980@jade.berkeley.edu>, wmb@SUN.COM writes:
> > Surely the Forthers of the world could agree on some minimal set of wordsets
> > to implement?  It's kind of like what I understand the ANSI committee is
> > trying to do with the language
> 
> Agreement is a very difficult thing to achieve.  For example, believing
> that memory allocation is important, I convened a working group
...
> I presented the proposal at the October ANSI Forth meeting.  It was
> defeated.  There were violent disagreements in all directions, many of
...
> The process of obtaining agreement on any such issue is a political
> problem, from start to finish.  Politics is hard.  In this arena,

My membership in FIG finally came through, together with current issues of
Forth Dimensions and about $100 worth of disks and manuals (geared toward
F83 and F-PC 3.5  (I'll come back to discuss my first impressions of F-PC
in some other message, since it seems like Tom Zimmer read my thoughts about
improving the functionality of Forth).

Anyway, Brad, I caught your comments about Forth's "minimalist approach",
use of blocks instead of normal files, etc. which were quoted in Forth
Dimensions from a GEnie conference.  Until seeing your comments and taking
a look at F-PC I honestly didn't know that anyone with any sway in the
Forth community would agree with any of my ideas for improving the language.
(Silly guy that I am, I indulged myself in thinking that my comments would
all be considered blashemous to "real" Forth programmers!)

I can imagine your frustration in trying to bring a large number of Forth
vendors plus "old-timer" Forth advocates to a consensus.  I don't know
how many people are on the Ansi committee nor how they are aligned, but 
I'm thinking that if there are more than about 5 people on that committee
then trying to champion an idea through there is going to be nearly
hopeless.  Forth users tend to be an independent bunch, to begin with,
and vendors have a vested interest in keeping their products distinct.   

I'm admittedly an outsider to Forth and FIG, but it seems to me that Forth
has always made its biggest advances when FIG or other small groups of 
individuals basically said "screw it" and went ahead to promote a standard
on their own.  For example, consider Fig-Forth, MVP-Forth, F83 and, now,
F-PC.  The VENDORS have made almost zero contribution to the evolution of
language standards but appear to have been dragged every step of the way.
Laxen and Perry supposedly developed F83 because they didn't trust the
vendors to properly promote that standard.  The "community" would probably
spend the next twenty years fighting over windowing and hypertext
(on-line help) standards so I'm glad that Tom Zimmer, with F-PC, decided
not to consult them.  Too bad there aren't versions of F-PC for the Mac,
Amiga, etc.  THAT would really stir things up! 

I don't know how FIG works or how political things are at the upper
echelon of that organization, but what would be the chances of getting
FIG to officially promote a standard "add-on" wordset for strings,
floating-point, windowing, hypertext help, editor, database, etc?  I
shouldn't be anywhere near the project that the original Fig-Forth was,
though I'd imagine the opposition might be more organized now.  In order
for this to work, there'd have to be sufficient FIG affiliated programmers
to pretty well cover all the major Forth dialects on all the major machines
who would take care of customizing the standard word sets.  Someone would
call and order "Fig-Strings for F83 on a PC", for example.  FIG could 
even pretend it wasn't ignoring Ansi and the vendors in promoting an
independent standard; it could say it was just providing a service to its
members. 

> My fear is that the ANSI Forth standard is "too little, too late".

What's needed is a skunkworks along the lines of GNU and the Free Software
Foundation: an advocacy which actively promoted Forth by providing a
portable set of standards together with great documentation and a few really
INTERESTING, highly polished applications which were portable across
Forths by using Fig extensions.  If Fig would distribute
even one ARCADE QUALITY ADVENTURE GAME, portable across the major brands of
micros through use of Fig extension word sets, they'd score a major
public relations victory.  They would entice a LOT of new programmers to
investigate the language and they would provide a scaffolding upon which
other protable, high quality programs could be built.  (There's a lot
to admire about F83 from a technical standpoint, but for a new programmer
the environment is dull, Dull, DULL!  I can only spend so many hours
playing around with variations on printing bar charts (as taught in 
Starting Forth and K&S Text_and_Reference).  One decent arcade game, on
the other hand, would give me something interesting to tinker with and
explore.  I'm amazed that the Forth community apparently has such a poor
grasp of human psychology as it pertains to motivation and public
relations.  If something isn't done to change that, Forth is going to
go the way of the dinosaurs--just project how far it's fallen from
favor over the last decade and project that to the year 2000.  No, you
don't need to be a mathematician to figure out where Forth is going
to be. 

Can't someone provide me with an FUN application written to run under
F83 (preferably) or even F-PC which will really wow me?  I see that FIG
can provide me with a number of really boring (a.k.a. "advanced math and
Artificial Intelligence") extension wordsets...but not an impressive
(or even an unimpressive) arcade game???  Tell me...if you're a 15 year
old, not yet settled on a favorite programming language, what's there to
excite you and attract you to learn F83?  The answer is "N O T H I N G".  

-- 
{pacbell!sactoh0! OR ucdavis!csusac!}tree!stever

wmb@SUN.COM (Mitch Bradley) (12/19/89)

> Dave Binette writes:
> I would like to see..
> Standard ascii text files for source (LMI has this)

This is becoming pretty widespread.  LMI, JForth, MultiForth, Forthmacs,
Sun Forth, F-PC, Mach II, HS Forth, all use or support text files.
Apologies to implementations I have forgotten; pretty much everybody is
doing it.  The ANSI standard will encompass it too (I have been assigned
the task of writing "strawman" proposals to specify the precise semantics
of text file interpretation).


> A window management module.

It would be extremely difficult to come to agreement in this area,
consdering the many combattants in the "window system/toolkit war"
(Macintosh, Presentation Manager, MS Windows, X11, NeWS, Motif, New Wave,
Open Look, Display Postscript).  Whatever you pick, 70% of the people
are going to disagree violently.


> Memory management routines.

I proposed a set of memory management routines, semantically similar to
malloc() and free(), at the last ANSI meeting.  Alas, the proposal did
not pass.  A majority voted for it, but there were enough "nays" to prevent
the "overwhelming consensus" necessary for passing an ANSI Forth proposal.

In my opinion, the reasons given by the "naysayers" were bogus:
1) A couple of people think it is unnecessary because they personally
   do not need it (those people only use systems for which Forth
   owns the entire address space of the machine).

2) One person did not like it because it did not solve all his problems
   with DOS (the proposal intentionally does not address the problem of
   allocating memory in "nonlocal" segments, because ANSI Forth currently
   has no way to access such memory even if it can be allocated).

As a followup to this message, I will post my proposed memory allocation
wordset, along with an implementation.

Mitch

peter@ficc.uu.net (Peter da Silva) (12/19/89)

In article <1989Dec18.185612.8335@tree.uucp> stever@tree.uucp (Steve Rudek) writes:
> What's needed is a skunkworks along the lines of GNU and the Free Software
> Foundation: an advocacy which actively promoted Forth by providing a
> portable set of standards together with [a lot of cool stuff]

Sounds great, but don't put an obnoxious GNU-style license on it. Here's the
one I use:

/*
 * Copyright <year> <your organization>
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose with or without fee is hereby granted, provided
 * that the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation.
 *
 * This program is publicly available, but is NOT in the public domain.  The 
 * difference is that copyrights granting rights for unrestricted use and 
 * redistribution have been placed on the software to identify its 
 * authors.  You are allowed and encouraged to take this software and
 * build commercial products, freeware products, shareware products, and
 * any other kind of product you can think up, with the following restriction:
 *
 * If you redistribute the source to this program, or a derivitive of that
 * source, you must include this copyright notice intact. If the system
 * this source is distributed with is under a stricter license (such as
 * a commercial license, the typical freeware "no commercial use" license,
 * or the FSF copyleft) then you must provide the original source under the
 * original terms. Your code and your changes are your business. If you
 * want to give them away, great. If you don't, that's OK too.
 *
 * <your organization> makes no representations about the suitability of this
 * software for any purpose.  It is provided "as is" without express or
 * implied warranty.
 *
 * <your name> DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 * <your name> BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * Author:  <your name>, <your organization>
 *          <your address>
 */


Notes:

     o  Do not include the words "All rights reserved" unless you have had a 
	lawyer verify that you have also explicitly given away all of the 
	necessary rights shown in the samples.

	(this, I have been informed, may reduce your rigts in some countries.
	 It's a tough call)
 
     o  Spell out the word "Copyright"; the phrase "(c)" is NOT a legal
	alternative to the c-in-circle symbol.
 
     o  Put at least a one-line copyright at the top of EVERY source file, if
	not the full copyright.  Also, the copyright line or full notice MUST
	physically appear in each file.  Using the preprocessor to #include the
	copyright from some other file has no legal meaning (it can be used to
	incorporate common strings into the binary, but has no effect on the
	status of the source code).
 
     o  Things that are copyrighted are, by definition, not in the public
	domain.
-- 
`-_-' Peter da Silva. +1 713 274 5180. <peter@ficc.uu.net>.
 'U`  Also <peter@ficc.lonestar.org> or <peter@sugar.lonestar.org>.
"It was just dumb luck that Unix managed to break through the Stupidity Barrier
and become popular in spite of its inherent elegance." -- gavin@krypton.sgi.com

LEFF@PITTVMS.BITNET (12/20/89)

Interesting points about a copyright notice--you are absolutely
correct about the (c) symbol not being legal--you need to spell
out copyright or use the abreviation Co., followed by the year and
the agent who holds the copyright.  Of course if you can produce
a "c with a circle" this will substitute legally as you have mentioned.

The thing you did not mention is the simple fact that you MUST
REGISTER YOUR PRODUCT with the Copyright office in Washington or
else you legally have nothing!

Also, this fine difference between putting software in the public
domain, and making it publically available is moot unless you
secure legal rights by registering your product.  Once you have
a legal copyright, THEN you can dictate how your product is used,
copied, reused, resold, etc...

I went through all this when I took my public domain program VT100.C64
out of the public domain, improved it, copyrighted it and THEN, sold
it to a local firm under the name EMULATOR.100, a true VT100/VT102/VT52
terminal emulator for the Commodre 64, and written in FORTH!

It's marketed by Allegheny Software Works, P.O. Box 7103, Pgh., PA 15213,
and they have done very well with this FORTH based commercial package!

jax@well.UUCP (Jack J. Woehr) (12/21/89)

In article <1989Dec18.185612.8335@tree.uucp> stever@tree.uucp (Steve Rudek) writes:

	... lots deleted...

>The VENDORS have made almost zero contribution to the evolution of
>language standards but appear to have been dragged every step of the way.

	Not true. Forth, Inc. still sells the best commercially available
multiuser Forth operating system; Harvard Softwarks pioneered full-mem-model
80386 Forth; LMI UR/Forth hopped into the OS/2 market before most software
houses knew a DLL from a dildo; Delta Research maintains what is still
the premiere 68000 Forth, JForth, which incorporates most of your
suggested improvements and much much more, and has done so since 1986.

>The "community" would probably
>spend the next twenty years fighting over windowing and hypertext
>(on-line help) standards so I'm glad that Tom Zimmer, with F-PC, decided
>not to consult them.

	Hypertext is a feature, no-one is going to argue about that
in a Forth system. Neat feature, very helpful, has no more impact
on Forth itself than the color of your keyboard.

>  Too bad there aren't versions of F-PC for the Mac,
>Amiga, etc.  THAT would really stir things up! 
>

	FPC is Tom Zimmer's quite brilliant idea of making a Forth
for the PC/DOS world that runs nearly as well as JForth on the Amiga.
To do so he came up with a very clever way around the "brain-damaged"
Intel architecture. I commend him for that and look forward to the
OS/2 version, but to say that it points the way for the Amiga is
like saying the economy of Romania points the way for Eastern
Europe!

>I'm amazed that the Forth community apparently has such a poor
>grasp of human psychology as it pertains to motivation and public
>relations.


	Forth programmers, as a class, couldn't sell shaved ice in
hell. We are working on it. Image will change.

>go the way of the dinosaurs--just project how far it's fallen from
>favor over the last decade and project that to the year 2000.  No, you
>don't need to be a mathematician to figure out where Forth is going
>to be. 

	Forth is in use in more installations than ever before in its
history. It is becoming the premiere embedded control language, which is where
it was born.

	PC programmers have some darn funny ideas. According to EDT,
90% of the computer bux are spent on embedded systems in America,
10% on the type of computer people sit at a desk and use.

>
>Can't someone provide me with an FUN application written to run under
>F83 (preferably) or even F-PC which will really wow me?  

	Sure, buy the Prolog interpreter advertised each month
in FORTH Dimensions magazine.

	Better yet, go visit a friend with an Amiga and see the JForth
demos, or the JGoodies0 disk ...

{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}
{} jax@well     ." Sysop, Realtime Control and Forth Board"      FIG      {}
{} jax@chariot  ." (303) 278-0364 3/12/2400 8-n-1 24 hrs."     Chapter    {}
{} JAX on GEnie       ." Tell them JAX sent you!"             Coordinator {}
{} jax@well.sf.ca.us                                                      {}
{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}

henk@cs.eur.nl (Henk Langeveld) (12/21/89)

LEFF@PITTVMS.BITNET writes:

>The thing you did not mention is the simple fact that you MUST
>REGISTER YOUR PRODUCT with the Copyright office in Washington or
>else you legally have nothing!

The USA joined the Berne Convention some time ago, so this may not
be necessary anymore.  Under the Convention, the author of a work
holds the copyright on that work, from the time that the work is
created, automatically, implicitly.

However, it can still be useful to register your work, just to
make sure you can prove that you're the author.

Henk							(See Disclaimer:)
-- 
Henk Langeveld, Unix SysAdmin	| domain: <henk@cs.eur.nl>
Department of Computer Science	| phone:  +31 10 4081346
Erasmus University Rotterdam	| also:   langeveld@hroeur5.bitnet
Room H5-05, P.O.Box 1738, NL-3000 DR  Rotterdam, The Netherlands.

stever@tree.uucp (Steve Rudek) (12/22/89)

In article <8912190115.AA29047@jade.berkeley.edu>, wmb@SUN.COM (Mitch Bradley) writes:
> > Dave Binette writes:
> > I would like to see..
...  
> > A window management module.
> 
> It would be extremely difficult to come to agreement in this area,
> consdering the many combattants in the "window system/toolkit war"
> (Macintosh, Presentation Manager, MS Windows, X11, NeWS, Motif, New Wave,
> Open Look, Display Postscript).  Whatever you pick, 70% of the people
> are going to disagree violently.

This is ridiculous.  I'd bet that if a vote was held, at least 99% of all
FIG members would agree it is ridiculous.  Where do they get Forth 'Standards'
teams from, anyway?  Do they recycle retired COBOL standards teams or something?
Forth is supposed to be a lean, flexible language, which encourages reasoned
but "proactive" development.  This is supposed to make the development process
FASTER.  So why is it taking Forth LONGER to reach any meaningful degree of
"standardization" than it's taking other languages?   Aren't Forth programmers
supposed to believe in cutting past the crap and getting things done?  Forth
should be the FIRST language to have a windowing standard.  The FIRST
language to have a Btree standard.  The FIRST language to have an OOP standard.
Just because you have a standard doesn't mean that people HAVE to use it.  A
standard doesn't really take away a choice, it adds a choice.

General George Patton believed in getting things done and the U.S.
Army isn't exactly an anarchy.  General Patton said "A good plan VIOLENTLY
EXECUTED RIGHT NOW is far better than a perfect plan executed next week."

And, besides, there IS a windowing standard!  IT'S CALLED "CURSES".  But TEN
YEARS after curses, Forth programmers don't have ANY windowing standard --
not even a text-based windowing standard as good as curses??  And now the
plan is to wait another five years until C PROGRAMMERS agree on the design
of a bit mapped windowing standard?  Oh well, boys and girls.  As Jerry
Pournelle likes to say, it's just "evolution in action".  Specifically, it
reminds me of the Dr. Seuss story about the South going Zax and the North
going Zax "who met face to face and stopped dead in their tracks."  If you
didn't read it when you were younger you ought to read it now.  Maybe we should
chip in to get all the members of the Ansi "Standards Team" a copy of 
that story for Christmas?
-- 
{pacbell!sactoh0! OR ucdavis!csusac!}tree!stever

wmb@SUN.COM (Mitch Bradley) (12/23/89)

> > It would be extremely difficult to come to agreement in this area,
> > consdering the many combattants in the "window system/toolkit war"

> This is ridiculous.  ...
> ?Forth is supposed to be a lean, flexible language, which encourages
> reasoned but "proactive" development.  This is supposed to make the
> development process FASTER.  So why is it taking Forth LONGER to reach
> any meaningful degree of "standardization" than it's taking other
> languages?   Aren't Forth programmers supposed to believe in cutting
> past the crap and getting things done?

Since when does a fast development process help the process of getting
human beings to agree on anything?  If anything, it makes it worse; Forth
development can be so fast that many people can do their own window
systems, and once a Forth programmer has written some code, he'll be
damned if he is going to throw it away and adopt somebody else's idea
of how that problem should be solved.

Talk from a theoretical basis all you want; I've been there in person,
and I SEEN a different REALITY.

Furthermore, Forth programmers are anarchists at heart (otherwise they
wouldn't buck the establishment and continue to use Forth despite all
the pressure to use C).


> And now the plan is to wait another five years until C PROGRAMMERS agree on
> the design of a bit mapped windowing standard?

It's not C programmers that establish the standard; it's the marketplace.

If Forth comes up with its own standard, who will use it?  Successful
Forth systems for the Macintosh use the Macintosh window system.
Successful Forth systems for the Amiga use the Amiga window system.

In the Macintosh marketplace, anything that doesn't conform to the
Mac user interface is despised.  This would be true in the PC marketplace
too, if the PC had a user interface standard (one that came bundled with
ever PC and which most applications used).



> Where do they get Forth 'Standards' teams from, anyway?

The ANSI team is composed of people and companies who are willing to put
their money and time where their mouths are.  By ANSI rules, meetings
must be held at various locations.  This requires travel.  It probably
ends up costing about $2000 a year, or more, to travel to all the meetings.

Regardless of how you say it "ought" to be, getting a group of opinionated
Forth programmers to agree on anything is really, really, hard.


Anybody who does not believe me should try to drive the establishment of
a standard way of doing something in the Forth community.  I started
trying to do this for file system interfaces back in 1983, and I have
kept at it ever since.  (At FORML a couple of years ago, I won an award
for "most persistence" based on my continuing efforts in this area).
What effect did it have?  Very little.  The thing that finally drove
the ANSI committee to accept a file system interface standard (which is
much weaker than the one that I have been proposing all this time)
is marketplace pressure.  It seems that nearly all vendors, bowing to
customer demand, have already added file system interface capabilities.
The ANSI version is a "least common denominator" among those vendor's
systems.

Did anybody choose to adopt my 1983 proposal (which was based upon
C "standard I/O" principles and thus a know complete and useable set)?
No.  No vendors.  No implementors of PD or private systems.  I published
and put in the public domain a high-performance, complete, portable
implementation.  Why not?  Because EVERY FORTH IMPLEMENTOR WANTS TO
DO EVERYTHING HIMSELF, FROM SCRATCH.  Should it be that way?  No.
Is it that way?  Yes.  I have seen this attitude time, and time, and time
again.

Mitch

stever@tree.uucp (Steve Rudek) (12/25/89)

In article <15140@well.UUCP>, jax@well.UUCP (Jack J. Woehr) writes:
> In article <1989Dec18.185612.8335@tree.uucp> I said:
> >The VENDORS have made almost zero contribution to the evolution of
> >language standards but appear to have been dragged every step of the way.
> 
> 	Not true. Forth, Inc. still sells the best commercially available
> multiuser Forth operating system; Harvard Softwarks pioneered full-mem-model
> 80386 Forth; LMI UR/Forth hopped into the OS/2 market before most software
> houses knew a DLL from a dildo; Delta Research maintains what is still
> the premiere 68000 Forth, JForth, which incorporates most of your
> suggested improvements and much much more, and has done so since 1986.
Note I said "evolution of STANDARDS".

> 	Hypertext is a feature, no-one is going to argue about that
> in a Forth system. Neat feature, very helpful, has no more impact
> on Forth itself than the color of your keyboard.

I guess it may be a bit unrealistic to hope for a Forth "hypertext"
standard.  Still, it became evident to me after seeing VIEW in F83 that
Forth, more than any other language, can make use of a hypertext-like
language documentation facility.  Hypertext is Forth's best hope
for a resurgence in popular favor.  I said earlier that Forth's learning
curve was too steep.  That, of course, is not quite correct.  The learning
curve may actually be LESS steep than with many other languages.  It's just
long.  Long, long, very, very, long.  And it's mainly because of the huge
number of words involved in the language.  And the fact that you pretty much
MUST know ALL the words and how they interrelate before you can program
anything significant in Forth.  Forth is sort of like the Mandarin Chinese
of the programming languages--I understand that the number of words in F-PC
version 3.5 approaches 3,000.  Mandarin Chinese doubtless gives you
exquisite control of nuances, also, but I keep hearing how large it is and
how hard it is to master. 

A hypertext "standard" for Forth is probably too much to hope for.  But it
is what Forth very much needs.  I couldn't disagree more with you about its
"impact".  

> >  Too bad there aren't versions of F-PC for the Mac, Amiga, etc.
> 	FPC is Tom Zimmer's quite brilliant idea of making a Forth
> for the PC/DOS world that runs nearly as well as JForth on the Amiga.
I need to see JForth, obviously.  It must be amazing.  Since you've obviously
seen both I'll defer to your judgement and your suggestion in a previous
posting that it should be JForth which is elevated to a "standard".  I
understand that JForth is a commercial Forth--good for the vendors.  If I
had an Amiga I'd probably be happy to pay for it.  I wonder how the authors
would feel about having the "look and feel" of their implementation cloned
on other architectures?  Wouldn't it be fun if a handful of the most
creative, generous, and prolific Forth implementors (maybe Tom Zimmer,
Roedy Green, Mitch Bradley and the authors of JForth) formed their own
standards committee and introduced a new generation of Fig Forth?
 
> >I'm amazed that the Forth community apparently has such a poor
> >grasp of human psychology as it pertains to motivation and public
> >relations.
> 	Forth programmers, as a class, couldn't sell shaved ice in
> hell. We are working on it. Image will change.
By "we", do you mean Fig?  Is there an ORGANIZED, intelligent effort underway
to change Forth's image?  I (obviously) like campaigns.  Maybe I can
help in some way?

> >go the way of the dinosaurs--just project how far it's fallen from
> >favor over the last decade and project that to the year 2000.  No, you
> >don't need to be a mathematician to figure out where Forth is going
> >to be. 
> 	Forth is in use in more installations than ever before in its
> history. It is becoming the premiere embedded control language, which is where
> it was born.
...
> 90% of the computer bux are spent on embedded systems in America,
> 10% on the type of computer people sit at a desk and use.
  
Surely you know the difference between absolute numbers and market share?  What
you're saying here and in a previous message is that Forth is doing very
well now that it has admitted defeat as a general language and RETREATED to
the niche it came from -- instrument control.  I sure wouldn't count that as a
victory. The number of microcomputers has obviously exploded in the last
decade.  I imagine even the most obscure language can gather statistics
showing that the number of implementations of that language has grown
dramatically.

> 90% of the computer bux are spent on embedded systems in America,
> 10% on the type of computer people sit at a desk and use.
Statistics can be abused to "prove" all sorts of things.  I'm curious to know
how this was calculated but I will accept it, for now, as gospel truth.
So...there are at least ten million PCs out there (probably many more)?
How many embedded control systems?  What MARKET SHARE does Forth have in
embedded control systems?  It's such a great language and it's been around
for almost 20 years and it's gotten a lot of press.  Surely Forth must have
at least 50% -- hopefully more like 90% -- market share?  Are you saying
that there are millions and millions of embedded Forth systems out there or
only a few very expensive ones?  You mentioned earlier that your company
had something like a 20% annual growth over the last five years.  That surely
isn't peanuts but, speaking frankly, it isn't exactly super impressive,
either.  In fact, I have a hunch that if you segregated microcomputer software
companies into three camps -- declining, stable, growing -- you'd find that
20% growth is kind of average for growing companies.  Just a hunch, you 
understand.  But I've spoken to employees of a number of companies which are
advancing in the Unix software market and they are reporting 25% revenue
growth rates as sort of an average.  There are apparently some companies
which are doing much better.

And if Forth DOESN'T have a 50% or better market share in embedded systems
(tell me...does it even have 10%???) what is it going to do when -- five
or ten years from now -- all embedded systems...even toasters...sport at
least a meg of memory?  Can Forth beat out C in such a market when practically
all computer programmers know C (having learned it on the "10%" of the
computer market which Forth has conceded) and almost nobody knows Forth?
-- 
{pacbell!sactoh0! OR ucdavis!csusac!}tree!stever

peter@ficc.uu.net (Peter da Silva) (12/27/89)

Lest anyone think I'm a Forth hater in drag, I'd like to point out that
the following is not really relevent:

> If Forth comes up with its own standard, who will use it?

> Forth systems for the Macintosh use the Macintosh window system.
> Successful Forth systems for the Amiga use the Amiga window system.

> In the Macintosh marketplace, anything that doesn't conform to the
> Mac user interface is despised.

A standard *program interface* to the windowing system can be devised
just as easily as a standard program interface to, say, files. A stringy
floppy, a diskette drive, and a UNIX file system all have radically
different low-level interfaces. But you can look at them all as block
files.

Similarly, a standard program interface to windowing could be made. It might
be fairly complex to implement, but something like the following should be
made to run on X, Mac, Intuition, GEM, etcetera...

	WINDOW MyNewWindow
	: InitMyNewWindow
	  SCREENSIZE MyNewWindow SetSize
	  HOME MyNewWindow SetPosition
	  DESKTOP " Open" MyNewWindow SetMenu OpenMenu !
	  DESKTOP " New" MyNewWindow SetMenu NewMenu !
	  DESKTOP " Close" MyNewWindow SetMenu CloseMenu !
	  BACKINGSTORE RESIZABLE DRAGGABLE HIDEABLE + + +
	    MyNewWindow SetAttributes ;

	: HandleMyNewWindow ( event --- )
	  dup GetEventType SWITCH
	    CASE MouseButtonUp DO
	      0 MyNewWindow SetPen
	    CASE MouseButtonDown DO
	      1 MyNewWindow SetPen
	    CASE MouseMove DO
	      dup GetXPos over GetYPos MyNewWindow PlotPixel
	    CASE MenuSelect DO
	      dup GetMenuID SWITCH
		CASE OpenMenu DO
		  MyNewWindow HandleOpenEvent
		CASE CloseMenu DO
		  1 TerminateFlag C!
		CASE NewMenu DO
		  HOME SCREENSIZE 0 MyNewWindow RectFill
	      ENDSW
	    ENDSW
	    drop ;
-- 
`-_-' Peter da Silva. +1 713 274 5180. <peter@ficc.uu.net>.
 'U`  Also <peter@ficc.lonestar.org> or <peter@sugar.lonestar.org>.
"It was just dumb luck that Unix managed to break through the Stupidity Barrier
and become popular in spite of its inherent elegance." -- gavin@krypton.sgi.com