[self-interest] (Aspects) Utilities in Lisp vs Design Patterns in Smalltalk- Self
ned at bike-nomad.com
Tue Apr 22 21:06:54 UTC 2003
On Monday 21 April 2003 09:27 am, Albertina Lourenci wrote:
> DEar All!
> First of all I would like if someone explain to me
> if there are differences between bottom-up programming
> and exploratory programming.
Because exploratory programming requires the discovery of design and
the evolution of a language to express that design, it tends to be
closer to bottom up programming.
> Paul Graham says Bottom up design leads naturally to
> extensible programs. The simplest bottom-up programs
> consits of two layers: language and program. Complex
> programs may be written as a series of layers, each one acting
> as a programming language for the one above. If this philosophy
> is carried all the way up to the topmost layer, that layer becomes
> a programming language for the user. Such a program where
> extensibility permeates every level, is likely to make a much
> better programming language than a system which was written
> as a traditional black box, and then made extensible as an
You can see this dramatically with Forth, most of whose dialects don't
support forward references or objects. You are forced to do bottom-up
However, the user-level language is only a subset of the language that
evolves. There are always (at least in non-trivial systems)
in-between layers whose vocabluary is only useful inside the system.
When we use objects, there's an additional dimension of separation of
responsibility. In addition to growing the vocabulary toward the
needs of the users, we're also separating responsibility along object
and (later) package lines. The vocabulary that's visible between
packages is the public vocabulary of the objects at the outside of
the packages -- the interface objects. Inside a package, the concerns
have already been separated along object lines.
GPG key ID: BEEA7EFE
More information about the Self-interest