[comp.lang.forth] Real programmers

aj-mberg@dasys1.UUCP (Micha Berger) (07/13/89)

Real programmers use FORTH, and know that cc's main significance is its use in
TV guide to tell deaf people their bosex will put text on the bottom of the
screen.
-- 
					Micha Berger

"Always should [the child of] Adam have awe of G-d in secret and in public,
admit the truth, and speak truth in his heart." 

fair@Apple.COM (Erik E. Fair) (07/16/89)

In the referenced article, aj-mberg@dasys1.UUCP (Micha Berger) writes:
>Real programmers use FORTH, and know that cc's main significance is its use in
>TV guide to tell deaf people their bosex will put text on the bottom of the
>screen.

Forth is Lisp, badly reimplemented on inadequate hardware by an
astronomer who didn't know what he was doing.

	nyah!

	Erik

jax@well.UUCP (Jack J. Woehr) (07/16/89)

In article <33180@apple.Apple.COM> erik@notenuff.edu writes:
>In the referenced article, aj-mberg@dasys1.UUCP (Micha Berger) writes:
>>Real programmers use FORTH, and know that cc's main significance is its use in
>>TV guide to tell deaf people their bosex will put text on the bottom of the
>>screen.
>
>Forth is Lisp, badly reimplemented on inadequate hardware by an
>astronomer who didn't know what he was doing.
>
>	nyah!
>
>	Erik

	Those who don't know Erik should realize that he is a major
Unix guru, most frequently found in the Well conference "pub" drinking
virtual green beer and insulting any Forth programmer who ventures
in.

	So it's alright, he's just that way because someone executed

		chmod 555

	on his brain cells a few years ago and he ain't learned anything
	since!

	:-)

{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}
{}                                                                        {}
{} 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 {}
{}                                                                        {}
{} "He who will swallow udala seeds must consider the size of his anus"   {}
{}                - Chinua Achebe, _Arrow of God_, Doubleday 1969         {} 
{}                                                                        {}
{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}

RAYBRO%UTRC@utrcgw.utc.COM ("William R Brohinsky", ay) (07/17/89)

interesting! Erik, I've heard of Lisp (alias Lots of Infuriating, Spurious
Parentheses) implemented on the first NOVIX chip, which ran faster than
any LISP engine, Have you heard of a forth implemented on a Lisp engine
that ran faster than any (other, more than 4-bit) implementation of Forth?

bouma@cs.purdue.EDU (William J. Bouma) (07/18/89)

In article <8907171553.AA17414@lilac.berkeley.edu> Forth Interest Group International List <FIGI-L%SCFVM.bitnet@lilac.berkeley.edu> writes:
>interesting! Erik, I've heard of Lisp (alias Lots of Infuriating, Spurious
>Parentheses) implemented on the first NOVIX chip, which ran faster than
>any LISP engine, Have you heard of a forth implemented on a Lisp engine
>that ran faster than any (other, more than 4-bit) implementation of Forth?

     Well, even if he had heard of it, that wouldn't make it so. "ran faster"
     is vague and very subjective especially with lisp. A sun 4 can beat a
     lisp machine on small jobs simply because its processor is faster. On
     other code the lisp machine will be faster because it can do garbage
     collection on the fly.

     Look, different languages are good for different things. Real programmers
     decide based on the application, machine, and what is available which
     language to use. 

     All that this discussion has said so far is that forth can be written in
     lisp and lisp can be written in forth. Big deal!
-- 
Bill <bouma@cs.purdue.edu>  ||  ...!purdue!bouma 

travis@svax.cs.cornell.edu (Gregory Michael Travis) (07/18/89)

In article <7135@medusa.cs.purdue.edu> bouma@cs.purdue.EDU (William J. Bouma) writes:
$     lisp and lisp can be written in forth. Big deal!

Big Deal?  Do you know how elegantly it can be done?  Does that matter?  Sure
it does.  abstract languages like lisp, and forth (sort of) are amazingly
expressive, and it is no useless fact that they can implement one another.

$Bill <bouma@cs.purdue.edu>  ||  ...!purdue!bouma 

			Gregory Michael Travis

nigel@ese.essex.ac.uk (Nigel S.H. Brooks) (07/18/89)

In article <33180@apple.Apple.COM> nobody@noao.edu writes:
>In the referenced article, aj-mberg@dasys1.UUCP (Micha Berger) writes:
>>Real programmers use FORTH, and know that cc's main significance is its use in
>>TV guide to tell deaf people their bosex will put text on the bottom of the
>>screen.
>
>Forth is Lisp, badly reimplemented on inadequate hardware by an
>astronomer who didn't know what he was doing.
>
>	nyah!
>
>	Erik

How can anything be more badly designed or implemented than Lisp, its
name says it all...




+--------------------------------------------------------------------------+
|  |\  | _ _  _   _       Nigel S.H. Brooks                                |
|  | \ |  |  /   |_  |    Essex Electronics Centre                         |
|  |  \| _|_ \_| |_  |_   Essex University, UK Email: nigel@ese.essex.ac.uk|

marc@noe.UUCP (Marc de Groot) (07/18/89)

In article <33180@apple.Apple.COM> Erik Fair writes:
>In the referenced article, aj-mberg@dasys1.UUCP (Micha Berger) writes:
>>Real programmers use FORTH, and know that cc's main significance is its use in
>>TV guide to tell deaf people their bosex will put text on the bottom of the
>>screen.
>
>Forth is Lisp, badly reimplemented on inadequate hardware by an
>astronomer who didn't know what he was doing.

C is assembler, so poorly implemented that it takes six MONTHS to port
a crummy version of the compiler (This time period is from the paper
on pcc, the portable C compiler).

Forth is not Lisp.  The only thing Forth has in common with Lisp is that
both are completely unlike anything else.  Forth has similar strengths
to Lisp.

One interesting strength that it does NOT share with Lisp is that Forth
will run usably fast on hardware that I can afford to put in my home.

Hardware is only inadequate when it won't run fast enough to do the
job at hand.  If your software development tools can't be used to
develop code for my hardware, then there's something wrong with your
tools.  CPU's don't exist for the sake of making compilers work well;
it's the other way around.

Forth avoids the headaches and overhead of garbage collecting while
giving the programmer similar tools.  This means that Forth will
give better performance than Lisp no matter what the hardware (with
the possible exception of "Lisp engines").

C, of course, is a compact notation for assembler.  The designers had 
only that goal in mind -- they thoughtlessly made the language complex
to parse, and difficult to write debuggers for.

Systems designers see the need for a seamless environment -- the C shell
is an example of what I mean.  Everyone understands the desire to have
the command-level language and the programming language look alike.
Forth solved this problem years ago by having the two languages BE THE
SAME THING -- you may issue system-level commands or write code
at any Forth prompt.

Forth is internally MUCH CLEANER that a typical Lisp interpreter.  There
is no need for "syntactic sugaring" in Forth, a trend in the Lisp world
that makes parsers more complex, more opaque, and more difficult to debug.

I would concede that Forth is something like Scheme -- a very simple
Lisp-like interpreted language whose approach is one of high performance
and minimalism.

Finally, Charles H. Moore, the inventor of Forth, has never been an
astronomer.

-Marc "Rebel Without A Compiler" de Groot

"I don't CARE about small machines." -Richard Stallman, on being
informed that GNU Emacs won't fit on an 80286 UNIX box because elisp
is too big.
-- 
Marc de Groot (KG6KF)                   These ARE my employer's opinions!
Noe Systems, San Francisco
UUCP: uunet!hoptoad!noe!marc
Internet: marc@kg6kf.AMPR.ORG

bouma@cs.purdue.EDU (William J. Bouma) (07/18/89)

In article <30044@cornell.UUCP> travis@svax.cs.cornell.edu (Gregory Michael Travis) writes:
>In article <7135@medusa.cs.purdue.edu> bouma@cs.purdue.EDU (William J. Bouma) writes:
>$     lisp and lisp can be written in forth. Big deal!
>
>Big Deal?  Do you know how elegantly it can be done?  Does that matter?  Sure
>it does.  abstract languages like lisp, and forth (sort of) are amazingly
>expressive, and it is no useless fact that they can implement one another.
>


   Of course it is a beatiful thing that such can be done. It is just that
   everyone has known this for a long time. SO why have there been 5 posts
   simply stating that fact? I would love to see some posts talking about
   how this can elegantly be done. Tell me how the architecture of the Novix
   chip allows one to efficiently implement lisp. That may make for some
   interesting reading. But do not tell me that it can be done, for that
   is common knowledge, and thus, no big deal!
-- 
Bill <bouma@cs.purdue.edu>  ||  ...!purdue!bouma 

ZMLEB@SCFVM.BITNET (Lee Brotzman) (07/18/89)

William J. Bouma <bouma@PURDUE.EDU> writes:
>
>     Look, different languages are good for different things. Real programmers
>     decide based on the application, machine, and what is available which
>     language to use.
>
   Hear, Hear!  This is precisely what I was preparing to say when William
beat me to it.  Language bigots can argue on and on; real programmers choose
their tools and get on with the job.
   Let's nip this "real programmer" crap in the bud now, and carry on with
something that actually matters.

-- Lee Brotzman (FIGI-L Moderator)
-- BITNET:   ZMLEB@SCFVM                 SPAN:  CHAMP::BROTZMAN
-- Internet: zmleb@scfvm.gsfc.nasa.gov   GEnie: L.BROTZMAN
-- The government and my company don't know what I'm saying.
-- Let's keep it that way.

sabbagh@acf3.NYU.EDU (sabbagh) (07/18/89)

In article <7141@medusa.cs.purdue.edu> bouma@cs.purdue.EDU (William J. Bouma) writes:
>In article <30044@cornell.UUCP> travis@svax.cs.cornell.edu (Gregory Michael Travis) writes:
>>	[ Stuff about the expressiveness of FORTH ]
>
>   ...I would love to see some posts talking about
>   how this can elegantly be done. Tell me how the architecture of the Novix
>   chip allows one to efficiently implement lisp. That may make for some
>   interesting reading. But do not tell me that it can be done, for that
>   is common knowledge, and thus, no big deal!
>-- 

I have to agree with this.  I am one of those people who is really excited
by FORTH but I can't seem to get enough hard core information about 
real programming experiences in FORTH.  I am trying to develop a non-trivial
medical information system application and have been seriously contemplating
using HS/FORTH (I own an IBM PC/XT) but have been afraid to.

I am worried about committing myself to using a language/system without
knowing if I will be able to port it to different environments (this means
OPERATING SYSTEMS like UNIX).  I want to know if (besides A-Ts RapidFIle)(
FORTH has been used for a project like this and what the programmers' ex-
periences were.  Can more of this be discussed here?

Finally, I am concerned that most FORTH programmers have a prejudice
against people with college degrees ;-).


Hadil G. Sabbagh
E-mail:		sabbagh@csd27.nyu.edu
Voice:		(212) 998-3285
Snail:		Courant Institute of Math. Sci.
		251 Mercer St.
		New York,NY 10012

186,282 miles per second -- it's not just a good idea, it's the law!

koopman@a.gp.cs.cmu.edu (Philip Koopman) (07/18/89)

In article <1065@acf3.NYU.EDU>, sabbagh@acf3.NYU.EDU (sabbagh) writes:
> Finally, I am concerned that most FORTH programmers have a prejudice
> against people with college degrees ;-).

You might be surprised to find out that most Forth practitioners
(at least the ones at the Forth conferences) have college degrees.
In fact, a surprisingly large proportion of them have Ph.D. degrees.
They also are predominantly first-born male children.

The only thing is, almost none of the degrees have anything to
do with computers....

  Phil Koopman, Ph.D.                koopman@greyhound.ece.cmu.edu   Arpanet
  5551 Beacon St.
  Pittsburgh, PA  15217    
Senior Scientist at Harris Semiconductor.
I don't speak for them, and they don't speak for me.

jax@well.UUCP (Jack J. Woehr) (07/20/89)

In article <5558@pt.cs.cmu.edu> koopman@a.gp.cs.cmu.edu (Philip Koopman) writes:
>In article <1065@acf3.NYU.EDU>, sabbagh@acf3.NYU.EDU (sabbagh) writes:
>> Finally, I am concerned that most FORTH programmers have a prejudice
>> against people with college degrees ;-).
>
>You might be surprised to find out that most Forth practitioners
>(at least the ones at the Forth conferences) have college degrees.

	Not jax! I was thrown out of *3* fine educational institutions.

>In fact, a surprisingly large proportion of them have Ph.D. degrees.
>They also are predominantly first-born male children.
>
	Interesting! You got me there! Source of info?

>The only thing is, almost none of the degrees have anything to
>do with computers....

	Q.E.D. ... in *general* college degrees don't got nuttin
to do with computers ...

>Senior Scientist at Harris Semiconductor.
>I don't speak for them, and they don't speak for me.

	Well, do you speak *to* them? When's the RTX4000 due out? :-)

{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}
{}                                                                        {}
{} 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 {}
{}                                                                        {}
{}      "When the tree falls, the monkeys scatter" - Chinese Proverb      {}
{}                                                                        {}
{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}

carroll@s.cs.uiuc.edu (07/20/89)

/* Written  6:49 pm  Jul 17, 1989 by ZMLEB@SCFVM.BITNET in s.cs.uiuc.edu:comp.lang.forth */
William J. Bouma <bouma@PURDUE.EDU> writes:
>
>     Look, different languages are good for different things. Real programmers
>     decide based on the application, machine, and what is available which
>     language to use.
>
   Hear, Hear!  This is precisely what I was preparing to say when William
beat me to it.  Language bigots can argue on and on; real programmers choose
their tools and get on with the job.
/* End of text from s.cs.uiuc.edu:comp.lang.forth */

The mark of a REAL programmer is the ability to write working code in any
language, and the ability to pick the one that's appropriate and learn it
if [s]he doesn't know it.

Alan M. Carroll                "Oh goody, the Illudium Q-36 Explosive
carroll@s.cs.uiuc.edu           Space Modulator!"
CS Grad / U of Ill @ Urbana    ...{ucbvax,pur-ee,convex}!s.cs.uiuc.edu!carroll

caasnsr@nmtsun.nmt.edu (Clifford Adams) (07/24/89)

In article <30044@cornell.UUCP> travis@svax.cs.cornell.edu (Gregory Michael Travis) writes:
>Big Deal?  Do you know how elegantly it can be done?  Does that matter?  Sure
>it does.  abstract languages like lisp, and forth (sort of) are amazingly
>expressive, and it is no useless fact that they can implement one another.
>
>			Gregory Michael Travis


	I once wrote LISP in FORTH on my Commodore 64 with ~50k free
for FORTH words.  The source was about 40-50 screens, and implemented
about 50 LISP functions.  I later rewrote it for the Suns, and it
takes about 60K of source code (including many comments).  It ran
fairly fast, at the same order of magnatude as the native lisp
(written in C).  It also compiled in less than 1 minute on a loaded
SUN-3.

	Later on in the project I changed directions on it and started
to develop a hybrid language--forth with lisp features.  I finally had
to stop research because I couldn't afford the disk space to store it.
(my full development environment approached 400k).  What I really
liked about the Forth approach was that it was really easy to change
the modular parts of the code (like the address space).  I also liked
how the top level of the code was simple and fairly obvious in control
flow (unlike lisps written in C).

	I also liked the simplicity of adding functions to the core
system.  Here is a sample (from old memory):

\ adds the two arguments in the list that is passed.  Returns a number atom.
: lisp-add   ( args -- sum)
	lis>2args   \ checks for, and converts the list into two items
	atom># swap atom>#   \ converts the two atoms to FORTH numbers
	+   \ actually adds them
	#>atom ;   \ changes the number back to a LISP atom

\ inserts the LISP function "add", which calls the FORTH function "lisp-add"
subr add lisp-add

	Here is an example of how I could use the above word:

ok
read ( print ( add 3 7 ) ) eval   \ reads the list, then eval's it
10

...assuming that one has defined the "print" function.

	Well, this has rambled on long enough.  These postings do
bring back memories, however.

	-- Cliff

P.S.  I once implemented the main core of LISP in LOGO.  It took
less than one page to implement 6 LISP functions, plus eval.

-- 
 Clifford A. Adams    ---    "I understand only inasmuch as I become."
 caasnsr@nmt.edu            ...cmcl2!lanl!unm-la!unmvax!nmtsun!caasnsr
 (505) 835-6104 | US Mail: Box 2439 Campus Station / Socorro, NM 87801

eaker@sunbelt.crd.ge.com (Charles E Eaker) (08/16/89)

In article <5558@pt.cs.cmu.edu> koopman@a.gp.cs.cmu.edu (Philip Koopman) writes:
>...
>In fact, a surprisingly large proportion of them have Ph.D. degrees.
>They also are predominantly first-born male children.
>
>The only thing is, almost none of the degrees have anything to
>do with computers....

'tis true!

                            Chuck Eaker, Ph.D.
                            Computer Scientist

Software Engineering Program            |  eaker@sunbelt.crd.ge.com
General Electric                        |  eaker@crdgw1.ge.com
Corporate Research & Development Center |  eaker@crdgw1.UUCP
P.O. Box 8, K-1 3C12                    |
Schenectady, NY 12301                   |  518 387-5964                     

                            Chuck Eaker

Software Engineering Program            |  eaker@crd.ge.com