Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site ccivax.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!rochester!ritcv!ccivax!rb
From: rb@ccivax.UUCP (rex ballard)
Newsgroups: net.lang.forth,net.micro
Subject: Re: Does anyone have a simple screen editor written in forth?
Message-ID: <276@ccivax.UUCP>
Date: Fri, 20-Sep-85 21:16:08 EDT
Article-I.D.: ccivax.276
Posted: Fri Sep 20 21:16:08 1985
Date-Received: Wed, 25-Sep-85 03:34:35 EDT
References: <216@tekig5.UUCP>
Distribution: net
Organization: CCI Telephony Systems Group,  Rochester NY
Lines: 45
Xref: watmath net.lang.forth:297 net.micro:12079

> Brodie's ideas are for the birds. (from the book Thinking Forth)  I for one
> think writing my code in 1k blocks is stupid. 
>I really can't believe that variable length files promote bad code.

Is it possible you have never seen some of the 'C' programming nightmeres
or assembler atrocities that come with variable length files?

Variable length files let programmers get into some really bad habits like
200 lines between an 'if' and an 'else'!  Add to that some loops, some cases,
and some 'do forever' loops, and you can have a masterpiece in GIGO.

The first version I used had 512 byte block (32x16) screens.  Most of my
current work is in 'C', but I still have a very 'screen oriented' dialect.
I have actually recommended a 'FORTH for C programmers' seminar, just in the
hopes that some good habits would rub off.

I can't say I'm fanatically fond of 'screens' either, but given that a series
of very small definitions can be written in just a few lines each, it is
not that hard to live with.  It might be nice to have a choice of format's
though.  One trick that does work is to define newlines, linefeeds... as
:;, but it adds to your dictionary space and execution time if you let
them appear inside definitions (makes beautification difficult).

One option I have worked with was a CP/M version that would let you 'Save'
your last definition or the text of the commands entered since the last
'Save', whichever came last, similar to a 'history' command.  This meant
that you could try various definitions, and when you got a good one,
'Save' it.  It involved redefining the line enter definition to CMOVE
TIP into a block.  You could go back later and add the documentation.

I normally avoid getting involved in FORTH discussions, because FORTH
people tend to get a little too religeous.  Just mention words like
subroutine threaded code (very fast on a 6809), or 'infix preprocessor'
or even 'object oriented vocabularies', or even binary format files,
and you can be called a heritic and a FIG meeting.

Still, forth entails a lot of very powerful concepts - many, thanks to
Brodie - that are the basic foundations of any fourth generation
language (reading 'Forth meets Smalltalk' shows just how close they
really are).  One very powerful concept is that you can't mainain it
if you can't see it.


These statements of heresy and all other opinions expressed have nothing
in any way to do with Computer Consoles Inc. or it's employees.