[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 <email@example.com>
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
- 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.