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

Re: Industry versus academia




    Date: Thu, 6 Mar 2003 08:41:38 -0500
    From: Sundar Narasimhan <sundar@ascent.com>
    Sender: owner-ll1-discuss@ai.mit.edu

    The critical thing that database layers such as ODBC lacked, was
    really a tight coupling w/ our development and runtime
    environments. This is no small requirement. Consider the foll. usage
    scenarios: 
...
    - in a production environment the db code gets an error and throws to
    the debugger. If you use Lisp, you can identify the problem, download
    a patch that fixes it (redefining functions/words etc.), move down the
    stack and "restart" and voila everything comes back up.

To expand on/clarify this slightly: it is not only the Lisp that is
redefined, but the Forth that the Lisp generates, as well.

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

    And yes, we probably could have made it all work on top of a Saber-C
    like solution -- but I suspect the forth layer made the job of
    providing a binding layer in Lisp easier.. we have Lisp macros that do
    things like define those Forth words for transactions and they allow
    evaluations in both contexts.

Forth's simple and explicit execution model makes it easy for the Lisp
code to "reason" about PAS's state at any given time within the code
that Lisp generates.  (PAS is the acronym for our layer that uses
Forth.)  Use of another language would have likely resulted in an
instance of a Forth variation of Greenspun's 10th law.

		- Pat