From: ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie)
Newsgroups: comp.lang.forth
Subject: Forth in the Marketplace
Date: 14 Sep 92 11:46:01 GMT
Organization: EIEI-U

Category 2,  Topic 11
Message 128       Sun Sep 13, 1992
S.BAKER41 [S.E.Baker]        at 18:04 EDT
 
Bob,

Hello.  I'm not new to the forum but I have been in "lurker" mode most of the
time.  :-)  Your post struck a nerve with me; hence this reply.

> Trying to persuade people to try Forth is psychological stuff.

        Well.  Maybe.  I first acquired a copy of F-PC about 3 years ago. 
I've looked at it extensively and gone thru both "Thinking Forth" and "Forth:
A Text and Reference".  Then I bought a copy of HS-Forth and tried working
with it.  To date I have been unable to produce a single useful program with
either one.  The learning curve is far too steep and the file handling
abilities are worse than useless.  No wonder Forth is thought of as useful
ONLY for imbedded systems!  Until this is dealt with there will be NO
acceptance in the programming comunity, at large.  Some months ago I purchased
an upgrade of HS-Forth as I was promised a set of "comprehensive" examples. 
What I received was nothing of the kind!  To make matters worse, that product
came with a couple of editors which are both simply awful.  IMO, there is
simply no excuse for this whatever. Mr. Zimmer's editor in F-PC is greatly
superior and I didn't pay several hundred dollars for it either.  It is,
however, a sequential file system which seems to be hard for many Forthers to
accept.

> Most of us are too involved in Forth and haven't backed off
 > and looked at Forth through non Forth eyes.

        That is about the most true statement that I have ever read. If anyone
in this conference is serious about a generally accepted Forth then they had
better start listening to those of us who have attempted to (and seriously
want to) move into Forth with little or no success.

> FLOATING POINT default with a toggle words called FLO and INT.

        That would be ok but I would suggest a simpler answer.  For the
beginner it would be great to simply have floating point words; "ADD", "SUB",
MUL", "DIV" and maybe "SQUARE", "SQROOT", etc.  Yes, I know that this is very
"COBOL-like" -- deliberately so.  If you can make a COBOL programmer
comfortable with a transition into Forth then you will see the language gain
acceptance.  Converting him to more brief words can be accomplished later.

>                    RPN is controversial

        Why?  I see no reason for this to be a problem.  It is easily learned
and the value becomes obvious to anyone who learns the use of stacks.

> and then compile it.  Type RPN and you simply go back to usual
 > RPN entry.

        Please don't waste time worrying about this!  There are far bigger
holes in Forth that simply MUST be plugged before it is a "language".  Right
now, IMO, Forth is a piece of a language.  I won't be able to make use of it
until it becomes whole.

> Sequential files with a toggle between .SEQ and .BLK files.

        So what!  The vast majority of languages use sequential source files. 
This attachment to block files is pointless and amounts to separatism - a need
to be different for the sake of difference.  It also makes source code occupy
far too much disk space / memory.

> Error resistance and compiler security.

        ABSOLUTELY!  It is far more important that the compiler trap errors
than it is that the editor use blocks.  Any good compiler starts with a scan
for syntactical errors and refuses to continue until they are dealt with.  In
COBOL a missing "," causes havoc.  In Forth a missing ";" does also.  The more
effective this scan can be made, the better.

> Lots of Examples.  Three examples per concept at a minimum.

        Yes.  Better yet - complete programs which demonstrate the language
and provide tutorial assistance.  If a tutorial can be written which actually
produces a useful result - say a General Ledger or some such thing - that
would be even better.

> Sound and color.

        Certainly color is important in a PC environment.  Sound is a nice to
have (beyond "beep") but not critical to a basic Forth.

> DOCUMENTATION; Use the resources of the machine!  The compiler
 > doesn't do anything with numbers above 127, so use control-C to

        NO!  I want to be able to write software for use throughout the world.
If you shut down access to special characters you make translation to other
languages impossible.  Program documentation is an editor function.  Simply
run two parallel files or use the characters from 80 thru 159 on each line for
documentation.  ^-Tab could be used to switch between the areas.  Better yet,
a split screen which has the documentation lines in the upper half and the
source code in the lower.

        Now, to the missing elements.  Before I, or any other "real world"
programmer can use Forth it MUST have useful file handling. (Pun intended)  I
need to be able to quickly and accurately create ISAM or similar multiply
indexed data files on a PC.  This would be very easy for an experienced
Forther to write - for me it has been a nightmare!  The problem is so bad that
I have abandoned FORTH in favor of C.  There is no way that I am going to use
Forth if file handling for real world applications is not addressed in the
standard.  How the words are implemented on each machine is not an issue. 
But, the standard words must be defined so that I can depend on stability for
future products.  I will not waste the resources training my programmers to
use a language which is shifting under their feet.  Nor will I use a language
which I must complete first. All I am asking for is the defined ability to use
something akin to the following:

: MYFILE
 nnn   FILE  myfile        ( where nnn is the record length and
                          ( "myfile" is the file name. )
 nn t  FIELD first-field   ( where nn is the field length, "t" is the
                          ( field type and
                          ( "first-field" is the field name )
 ....

nn t  FIELD last-field    ;

        The defined fields should then be available as variables under their
own names.  An index can be indicated with a special word to replace FIELD.  A-
INDEX for the primary and B-INDEX, C-INDEX for additionals, maybe. Or, PR-
INDEX for primary, AU-INDEX for alt- unique and AD-INDEX for alt-duplcates.  I
really don't care.  I then want to be able to OPEN-FILE myfile, READ myfile,
WRITE myfile, etc. The alied word PATH is needed on the PC and many other
systems as well.  I realize that these exist in one form or another in various
Forths.  However, this is not adequate.  Standardization is critical.  Without
it I WILL NOT INVEST RESOURCES IN FORTH.  I strongly suspect that this has
something to do with the rapid abandonment of Forth by defense and space
agencies and contractors.

Best regards,
 Stephen E. Baker
 President
 Baker Software Products Corp.
 Indianapolis

-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us
Newsgroups: comp.lang.forth