prototypes, "meta" and reflective programming

Albertina Lourenci lourenci at
Wed Jan 10 15:37:35 UTC 2001

Dear Self-ers:

Following Brian Rice's excellent proposal that obviously enhances
my own viewpoints on the Babel effect in the currently state of the
art in computer science, I want humbly expose the conclusions
I am reaching after having read the excellent paper on Metaprogramming
and free availability of sources. Two Challenges for computing today.
(found in
I have taken the liberty to e-mail Faré and invite him to the open
discussion here.
First of all I want to congratulate the young  computer scientist Faré
for his
courage. Socrates says that courage is the most important virtue.
All other virtues are useless without courage.

I like to see there are more dreamers in the world!!!
He argues  that the practitioners of computing arts shall free
from the flashy but empty slogans like "multimedia" , " object-
oriented" , design- pattern" , " virtual machine", " intelligent
etc that are by-products of a culture of partitioning and loss of
responsibility.Shall they rather adopt a scientific attitude, that is
and critical at the same time, with respect to the essential process
that underlie their activity, which processes, for technical  that they
be, nonetheless have economical, political and  all in all moral
I like to hear the resonance of this echo.Hope it reaches all corners
of the cosmos.

Faré suggests that in the current computing projects necessarily
appears a divergence of point of views, as soon as multiple actors
(programmers, users) or in presence, and/or as soon as  these
actors evolve and that their points of focus change with time
(a same person can take several roles in succession even
simultaneously). Hence metaprogramming would be useful to
enforce consistency between these aspects that else would have to
be managed manually; it allows to handle once and for all
an uninteresting aspect so as to forget it afterwards.

He shows clearly that metaprogramming and free availability of
sources are related. The coming of the Internet, which multiplies
the speed and bandwidth with which potential developers exchange
messages, amplifies the utility, the necessity even, of methods
to efficiently handle shared information, that is, of  metaprogramming
and open development.
Moreover metaprogramming and open development are actually
two faces of a same phenomenon that unifies both of them:
reflective programming that optimizes sharing of information
within the development process through space and time alike.

He argues that the systems built around languages embedded
in existing dynamic development systems like FORTH or
LISP families (I know anything about FORTH? Who will help
me here?) that possess an almost instantaneous edit-compile-run-
debug interaction loop and have integrated various original
techniques for metaprogramming in their daily practice
suggest that a reflective system would be " integrated" with
all its functionalities being reachable from a same language,
in a way that minimizes the redundance of linguistic efforts
between meta-levels.
He says these languages are no doubt by this virtue the
most expressive languages currently available and we conjecture
that if used with this point of view, they are those that can
bring the highest productivity.

Here I disagree. I am a green architect and of course computer
scientists may know far more than I. However I have chosen
CLOS associated with a BlackBoard architecture  + BOOCH
methods to develop a knowledge based system. Another level
here  is the domain dependent  model entitled the Model of
Primary, Secondary and Tertiary Waves in  green architectural
and urban design generation.   What's the relationship here
between metaprogramming and BlackBoard architecture I do not
know. But indeed my PHD advisor, who is an architect with
broad knowledge in computer science (geographic information
systems and multimedia, he programmed in C) was not at all
satisfied with the arrangement. Neither was I. But this was
the best we could do in 1992. My co-advisors were from the
field of artificial intelligence.

(To be better understood I should state what hermeneutic
computer science means, but I kindly ask you to refer
to my paper The hermeneutic nature of an ecodesign model
and Self in my home pages:

What's the basic problem with LISP? Peter Wegner states in
Models and Paradigms of Interaction LNCS (Lecture Notes
in Computer Science) 791 proceedings from ECOOP'93 that
the functional behaviour of LISP is inadequate in situations
that involve the interaction of persistence and concurrency
due to its inability to grasp the  real time of interaction for
persistent objects, and the problems in modeling concurrency
are a consequence of this fundamental nuisance.
Time in computing models means the internal time of execution
of an algorithm while time in models of interaction means
the external real time of the application that is being modelled.
These are notions fundamentally different.
And even with the introduction of the OO paradigm into LISP
CLOS, the many levels introduced to implement the ecodesign
model made everything very cumbersome to handle.

Soon I discovered The Mjolner Beta environment . Here I learned
about metaprogramming and Joergen LIndskov Knudsen
accepted to advise me  in a sandwich PHD modality.

Unfortunately Beta was not that expressive for my needs and
still it was not possible to implement a core to demonstrate
the potential of my ecodesign model.
Then I was introduced to Self in 1996.
What Wegner argues and I agree is that  the idea of interaction
is more powerful than algorithms, enabling us to distinguish
 multiple leves of expressiveness.
I believe Self is essentially interactive. I am not arguing that
Self is perfect but it seems prototype-based languages are
more interactive and expressive than any other programming
language that exists.

To transfer expressiveness from the programming language
to the architectural organization will make the act of
programming for the uses far more complicated, unfriendly
and unnatural.

I bet my colleagues that are architects won't appreciate it.

Moreover all papers and theses I have been reading
concerned with reflection associate it to a prototype-based
language (Steyaert, Malenfant, Cointe, Jecel  etc).

So I would like you to contribute to this discussion.And
since it is the very core of my needs to implement
my ecodesign model, who knows...suddenly we can
get started a research group as soon as possible.

Above all I do appreciate this trend of research.

Best wishes


| Albertina Lourenci                                       |
| PhD  in Architecture and Urbanism                        |
| post-doctorate researcher                                |
| Laboratory of Integrated Systems University of Sao Paulo |
| Avenida Professor Luciano Gualberto, 158 Travessa 3      |
| CEP: 05508-900                                           |
| Sao Paulo Sao Paulo State Brazil                         |
| Voice: +55 011 818 5254                                  |
| Fax: +55 11 211 4574                                     |

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Self-interest mailing list