[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Industry versus academia




    From: "Herchenroeder, Thomas" <Thomas.Herchenroeder@softwareag.com>
    Date: Thu, 6 Mar 2003 08:54:47 +0100
    Sender: owner-ll1-discuss@ai.mit.edu


    > But my bird's eye view is that forth is one of the few non gc'ed
    > languages wherein you can define user-definable functions (words) at
    > run time. I know gc is considered a win on this list, so no flames
    > re. that please :)

    In the absence of Patrick O' Donnell: I presume you wanted a non gc'ed
    language for performance reasons, right?!

Actually, Patrick O'Donnell isn't absent, he's just very busy right
now.

Much of the Forth support was built before I came here, too, so I
don't have all the details on why it was chosen.  However, performance
was certainly a major goal.

Also, except for the base level Forth system, most of the Forth code
is generated by our Lisp applications.  Being somewhat stylized, and
characteristically repetitive, the storage requirements are easily
determined.  A resource-based or static allocation scheme works fine
for what our Forth system needs to do.

    > The reason we wrote those layers I imagine (some of it was before my
    > time) is to allow us to develop such code to connect to databases and
    > to throw up user interfaces from Lisp machines and we were not
    > satisfied with CLX/CLIM or ODBC type stuff. 

    Not satisfied?

More accurately, the Forth system was initally built when CLX/CLIM
were infants and ODBC wasn't.  If we were designing it today, we'd
undoubtedly make different choices.

    > Also, by developing that
    > layer, we could port our applications to run on other 
    > machines/OS as soon
    > as we had a Lisp compiler (+ X server/client libraries + OCI
    > libraries) for that machine/OS. (i.e. it decoupled our development of
    > platform specific code from the development of our applications -- no
    > small feat :) 

    Sure, but that sounds like a feature of your architecture, not the language.

A little of both.

    > Forth makes it easy to connect to C code for X11 and OCI (Oracle),
    > Sybase etc. and provides a way for Lisp to connect to it and define
    > new transactions.. our programming is done entirely in Lisp, and the
    > forth layer is somewhat hidden (except on rare occasions when you need
    > it). 

    Probably most people would have picked C, apart from the run time words?!
    What made run time words so important for that layer?

See above.  The real (interesting) work that the Forth layer performs
is automatically generated by Lisp at runtime.  As often as not, the
Lisp code that generates the Forth is itself generated at runtime.

		- Patrick O'Donnell