[comp.sys.amiga] YALW

pfaff@gemini.asd.contel.com (Ray Pfaff - Oakwood 457 934-8162) (07/06/89)

Doug Merrit writes:
>When a company uses Forth to write software, it means only one thing: they
>want it finished by tomorrow. This is typical of defense contractors, who
>have to have their bid beating that deadline...


You must mean done, not working.  Forth isn't a language to be used to get 
something working quickly.
I`ve worked in defense contracting for 10 years and I`ve never heard of Forth
being  used as anything except a joke.

Ray Pfaff

phil@eos.UUCP (Phil Stone) (07/06/89)

In article <19053@louie.udel.EDU> pfaff@gemini.asd.contel.com (Ray Pfaff - Oakwood 457 934-8162) writes:

>You must mean done, not working.  Forth isn't a language to be used to get 
>something working quickly.
>I`ve worked in defense contracting for 10 years and I`ve never heard of Forth
>being  used as anything except a joke.
>
>Ray Pfaff

I think Phil Burke and his partner (whose name I have forgotten) would
take strong exception to this.  To refresh your memory: these two won
the speed programming contest that was held about two months ago,
using JFORTH on the Amiga   In fact, they were the ONLY two to complete
the assigned task in the alloted time, not just the first to finish.

They finished the very complex task, which entailed interfacing to an
obscure hardware character-generating gizmo, in approximately 90 minutes.
Time alloted was two hours.  It is safe to say they got "something
working quickly."

I have problems with FORTH in large applications, but it is definitely
an excellent language for quick implementation, and is definitely not
just a "joke."

		Phil Stone	 (phil@eos.arc.nasa.gov | ames!eos!phil)

doug@xdos.UUCP (Doug Merritt) (07/06/89)

In article <19053@louie.udel.EDU> pfaff@gemini.asd.contel.com (Ray Pfaff - Oakwood 457 934-8162) writes:
>Doug Merrit writes:
>>When a company uses Forth to write software, it means only one thing: they
>>want it finished by tomorrow. This is typical of defense contractors, who
>>have to have their bid beating that deadline...

That should've been "Merritt", if I'd written that, which I didn't.
It was a *response* to my comment about Sun using Forth for boot code.

>You must mean done, not working.  Forth isn't a language to be used to get 
>something working quickly.
>I`ve worked in defense contracting for 10 years and I`ve never heard of Forth
>being  used as anything except a joke.

Oh, great, another language flame. Ok, in that spirit: I guess you
missed the fact that the "Fastest Programmer in the World" contest
was won by two (Amiga JForth) Forth programmers? I don't use Forth
at all myself, but I think it has its own merits. Disadvantages, too,
but what doesn't?

And since you like to start flames by calling some people's (not mine)
favorite language a joke, let me point out that you're throwing rocks
while living in a glass house. More specifically, everybody knows
that defense contractors (A) are constitutionally incapable of being
at all productive, and hence wouldn't know anything about "getting
something working quickly", and (B) defense contracting firms only
hire people who aren't talented enough to get work for a Real Company
that pays Real Wages.

Oh, my, he's turned an incredible shade of purple. Hey, just kidding!
Don't throw rocks at me, some of my best friends work for...Ouch! Quit
that! Just kidding!

I thought that this little bit of sharp "humor" was called for, given
your posting, but if you're still mad, please flame me via *email* so that 
we don't clutter the net with needless flames.
	Doug
-- 
Doug Merritt		{pyramid,apple}!xdos!doug
Member, Crusaders for a Better Tomorrow		Professional Wildeyed Visionary

pfaff@gemini.asd.contel.com (Ray Pfaff - Oakwood 457 934-8162) (07/07/89)

Phil Stone writes:
>I have problems with FORTH in large applications, but it is definitely
>an excellent language for quick implementation, and is definitely not
>just a "joke."

Actually I have used Forth before and I like the language, but as you 
pointed out it isn't very useful for a large project which involves many
people working in a parallel effort, not to mention that it fosters
bottom-up programming and hacking to the extreme (probably the reasons
why I like it).  I stand by my statement about it being a joke in the Govern-
ment contracting arena, because I`ve often hear the following lines when
discussing a project:

person A: The Government wants us to change our real-time exec and C soft-
ware to run in a Unix and Ada environment (...followed by a description of
the most horrendous other conditions to be met...)

person B:  Oh great!  Why don't we write it in Forth instead !
(laughter from both parties)
Maybe I should be a little more specific;  I don't think Forth the language is
a joke, but it certainly has been used as the punchline for quite a few.

MROBINSON@wash-vax.bbn.com (07/08/89)

[Valentin comments that use of Forth indicates a desire to complete
 a task yesterday]

This just caught my interest.  I used Forth for some graphics back when I
had a summer job at Goddard Space Flight Center.  They weren't on a time
crunch, but were interested in modularity and being able to work at a low
level and a high level at the same time.  Plus, I hear most astrophysicists
like Forth for some reason.

The language that made it quickest for me to get complicated things done
quickly was Quintus Prolog (a damn fine implementation, guys!).  The nice
thing about Prolog is that IF you are of a logical turn of mind, AND you can
find a coherent model for the optimal algorithm for your problem, Prolog allows
you to express that model in a short program (and I mean SHORT!) that works in
the general case, and (at least with Quintus, I know other implementations of
which I would not say this) very efficiently.  The drawback to Prolog is that
one really can't use it very well for interacting with the operating system;
I always used their C language interface to do sockets and the like.

--Max mrobinson@wash-vax.bbn.com

doug@xdos.UUCP (Doug Merritt) (07/08/89)

In article <19248@louie.udel.EDU> MROBINSON@wash-vax.bbn.com writes:
>
>  Plus, I hear most astrophysicists like Forth for some reason.

Forth was originally invented as a low level control language for
(something like) telescope tracking control hardware at an observatory.

>The language that made it quickest for me to get complicated things done
>quickly was Quintus Prolog (a damn fine implementation, guys!).  The nice
>thing about Prolog is that IF you are of a logical turn of mind, AND you can
>find a coherent model for the optimal algorithm for your problem, Prolog allows
>you to express that model in a short program (and I mean SHORT!) that works in

Yes. Case in point: a friend of mine, Paul Baclaski (who also happens to
be an Amiga enthusiast) was working on an integrated incremental compiler/editor
environment. The goal was to have the editor notice changes made to the
program, and pass info about them to the compiler, which would know about
interdependencies in the program, note which ones were affected by the changes,
and recompile the smallest possible subset of the program. I.e. if you
changed the type of a variable X from short to long, it would recompile only
those parts of the program that used X. (It used a novel output file format
which allowed compilation of units smaller than a function.)

He prototyped the hard part that had to refigure interdependencies in
Prolog. It took something like twenty lines of Prolog to specify the logic
of the interdependences and when something should be recompiled. Fiddling
with this Prolog prototype allowed him to find bugs in his design, fix
them, and produce a flawless algorithm in something like one day.

Lacking a C/Prolog interface, he then recoded this module in C, which
required several hundred lines compared with the original 20 lines. He
estimated that it saved him several weeks of development (tricky code
that would have required several complete rewrites of this multihundred
line module per experiment), even though he had to rewrite it in C once
it was debugged. BTW it worked correctly on the first try once recoded in C.

>  The drawback to Prolog is that
>one really can't use it very well for interacting with the operating system;
>I always used their C language interface to do sockets and the like.

Yep. Every language has its drawback, and it makes more sense to simply
switch to C when appropriate than to try and add systems programming
features to Prolog.
	Doug
-- 
Doug Merritt		{pyramid,apple}!xdos!doug
Member, Crusaders for a Better Tomorrow		Professional Wildeyed Visionary

new@udel.EDU (Darren New) (07/11/89)

In article <426@xdos.UUCP> doug@xdos.UUCP (Doug Merritt) writes:
>Forth was originally invented as a low level control language for
>(something like) telescope tracking control hardware at an observatory.

I heard that it was originally invented for a stand-alone hardware
and/or software debugger box and then later was recognised as being
a nice embedded system language. -- Darren

trolfs@vax1.tcd.ie (Tommy) (07/14/89)

In article <19135@louie.udel.EDU>, pfaff@gemini.asd.contel.com (Ray Pfaff - Oakwood 457 934-8162) writes:
> Actually I have used Forth before and I like the language, but as you 
> pointed out it isn't very useful for a large project which involves many
> people working in a parallel effort, not to mention that it fosters
> bottom-up programming and hacking to the extreme (probably the reasons
> why I like it).  I stand by my statement about it being a joke in the Govern-
> ment contracting arena, because I`ve often hear the following lines when
> discussing a project:
> 
    [stuff deleted]
> Maybe I should be a little more specific;  I don't think Forth the language is
> a joke, but it certainly has been used as the punchline for quite a few.

    I think one of the main problems with Forth (I admit that there
    are a few :-), or rather not with Forth itself but with people who
    use Forth, is that they try to use it like a conventional high 
    level language. Forth is very different from other languages and
    as such it requires that the programer adopt a new approach. For
    one thing Forth is not a language, but rather a meta-language.
    This difference is very important if you want to use Forth
    seriously. If anybody is interested, there is a very good book by
    Leo Brodie called "Thinking Forth" which is a good read that
    doesn't require you to know Forth to benefit from it and will
    dispel any notions that Forth is in any way less than other
    languages.

    The reason for this article is due to a statement, by someone in
    this thread, that Forth is not very good for large applications
    involving a lot of people. I cannot speak from experience, so what
    I have to say is solely from my understanding of Forth, but I feel
    that Forth (done properly) is a very good language for large
    projects. As I have said before, Forth is a meta-language which
    means that you write WORDS(*) to describe the problem and then use
    these WORDS to solve it. This allows you to describe the problem in
    terms which are 1) easy to understand and 2) easy to work with.
    In a situation where there are a lot of people working together,
    this ability of Forth (which is really its power) makes it easier
    for ideas to be put down in code and also easier understood by
    others. C code looks like C code (and not very nice at that).
    Forth code looks like a million bucks and reads like poetry (Ok, 
    so I'm exaggerating :-). Forth programing is like object oriented
    programing. In OOP, you have to put a bit of thought into your
    classes if they are to be useful. In Forth, you have to put in
    some work on the WORDS which you will use to describe the problem at
    hand. If you do this, then the problem becomes much easier to
    handle. This means you should be able to tackle ANY size job with
    equal confidence. To conclude, I feel Forth is a very good language
    for large projects, but only if used properly (There's always a 
    catch).

    This (the posting) is really just so I could preach a bit of Forth
    to the masses. Jesus wasn't kidding when he said "Go Forth, and
    spread the word" (Ok. It's bad, I know). Anyway, hopefully there
    will be a growing number of Amiga user's doing Forth. Don't be put 
    off by dumb smucks telling you Forth is a joke. 

    : TELL-ME-A-JOKE  ." What do you think you'er reading :-)"
                                              DUMB-SMUCK ;  

    : DUMB-SMUCK ( s are always saying ) TELL-ME-A-JOKE ;


    If you are thinking of learning Forth, I suggest you get Leo
    Brodie's book "Starting Forth" and read it while you have Forth
    running. There is a Forth on one of the early Fish Disks. It's
    called MVP-Forth (Mountain View Press, I think). I haven't been
    able to use it so I can't tell you what it's like (I only got my
    Amy a week ago). Maybe someone else can post a review of it and 
    what disk it is on. If you do decide to try Forth, hang in there.
    It takes quite a while to really get to terms with it. Good luck!

    WORDS(*): Word used in this context means a word in the Forth
    sense. For people who don't know Forth at all, a word is much the
    same as a function in C.


    Afterword: This article is NOT a flame of Ray's posting. I do not
    think that Ray is a DUMB-SMUCK (just incase it reads that way).
    As he himself says, other people (I think defence contractors was
    mentioned somewhere:-) call Forth a joke and it's to them that I
    direct my rebuke. Still, I don't agree about Forth not being
    useful for large applications. Then again, what do I know?
     
-- 
 Tommy IV                                      E-mail: trolfs@vax1.tcd.ie
                   //  Amiga 500.
       $P-)     \\//      What's your's called?     
-----------------\X------------------------------------------------------
"A dirty mind is a joy forever."
-- Randy Kunkee

trolfs@vax1.tcd.ie (Tommy) (07/15/89)

> 
>     : TELL-ME-A-JOKE  ." What do you think you'er reading :-)"
>                                               DUMB-SMUCK ;  
> 
>     : DUMB-SMUCK ( s are always saying ) TELL-ME-A-JOKE ;

    Did I say SMUCK? I think it's meant to be SHMUCK. Ah well, 
    Forth is all about making up new words. :-(
     
    (I think I'll go and dip my head in a bucket of water now
    Tramp,tramp,tramp,rattle,slosh,slosh,ssssSSSSTEEEAMMM....)

-- 
 Tommy IV