A declarative model of Smalltalk (was Re: [DOCS] SUnit tests)

RT Happe rthappe at mathematik.uni-freiburg.de
Sun Feb 23 20:30:50 UTC 2003

On Sat, 22 Feb 2003, Allen Wirfs-Brock wrote:
> At 04:00 AM 2/22/2003 -0500, Jeff Read wrote:

> >terms of philosophy if not implementation. In Scheme, for instance, the
> >keyword define means "Add this symbol to your currently running global
> >environment, and bind it to the following value..." LISPers tend to see

For the record:  This is false or at least terminologically misleading.
Scheme variables are language level entities, Scheme symbols are object
level entities (that a meta-program may use to represent variables.
The dynamic evaluation and loading procedures tend to blur that
distinction somewhat, though.)  Scheme definitions bind variables, not
symbols.  Furthermore, the language report --in my reading-- doesn't
specify top-level definitions fully enough to support a lispy imperative
interpretation well.  (But there are lisp-like Scheme dialects/systems.)

> >environment, and bind it to the following value..." LISPers tend to see
> >this as an advantage.
> Not when  they want to create a maintainable, reproducible, deployable
> application. In that situation they create archival source code definitions
> that can reproducibly create the  runable  application.

In my half-educated opinion, there's precisely the most important
difference separating Scheme from Lisp:  Scheme has moved away from
the lispy view of programs as modifications to the evaluator toward
the more static and traditional view of programs as text equipped with
meaning by the language spec.


More information about the Squeak-dev mailing list