<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Dear Self-ers:
<p>Following Brian Rice's excellent proposal that obviously enhances
<br>my own viewpoints on the Babel effect in the currently state of the
<br>art in computer science, I want humbly expose the conclusions
<br>I am reaching after having read the excellent paper on Metaprogramming
<br>and free availability of sources. Two Challenges for computing today.
<br>(found in <A HREF="http://fare.tunes.org">http://fare.tunes.org</A>)
<br>I have taken the liberty to e-mail Faré and invite him to the
open
<br>discussion here.
<br>First of all I want to congratulate the young  computer scientist
Faré for his
<br>courage. Socrates says that courage is the most important virtue.
<br>All other virtues are useless without courage.
<p>I like to see there are more dreamers in the world!!!
<br>He argues  that the practitioners of computing arts shall free
themselves
<br>from the flashy but empty slogans like "multimedia" , " object-
<br>oriented" , design- pattern" , " virtual machine", " intelligent 
network"
<br>etc that are by-products of a culture of partitioning and loss of
<br>responsibility.Shall they rather adopt a scientific attitude, that
is open
<br>and critical at the same time, with respect to the essential process
<br>that underlie their activity, which processes, for technical 
that they
<br>be, nonetheless have economical, political and  all in all moral
<br>implications.
<br>I like to hear the resonance of this echo.Hope it reaches all corners
<br>of the cosmos.
<p>Faré suggests that in the current computing projects necessarily
<br>appears a divergence of point of views, as soon as multiple actors
<br>(programmers, users) or in presence, and/or as soon as  these
<br>actors evolve and that their points of focus change with time
<br>(a same person can take several roles in succession even
<br>simultaneously). Hence metaprogramming would be useful to
<br>enforce consistency between these aspects that else would have to
<br>be managed manually; it allows to handle once and for all
<br>an uninteresting aspect so as to forget it afterwards.
<p>He shows clearly that metaprogramming and free availability of
<br>sources are related. The coming of the Internet, which multiplies
<br>the speed and bandwidth with which potential developers exchange
<br>messages, amplifies the utility, the necessity even, of methods
<br>to efficiently handle shared information, that is, of  metaprogramming
<br>and open development.
<br>Moreover metaprogramming and open development are actually
<br>two faces of a same phenomenon that unifies both of them:
<br>reflective programming that optimizes sharing of information
<br>within the development process through space and time alike.
<p>He argues that the systems built around languages embedded
<br>in existing dynamic development systems like FORTH or
<br>LISP families (I know anything about FORTH? Who will help
<br>me here?) that possess an almost instantaneous edit-compile-run-
<br>debug interaction loop and have integrated various original
<br>techniques for metaprogramming in their daily practice
<br>suggest that a reflective system would be " integrated" with
<br>all its functionalities being reachable from a same language,
<br>in a way that minimizes the redundance of linguistic efforts
<br>between meta-levels.
<br>He says these languages are no doubt by this virtue the
<br>most expressive languages currently available and we conjecture
<br>that if used with this point of view, they are those that can
<br>bring the highest productivity.
<p>Here I disagree. I am a green architect and of course computer
<br>scientists may know far more than I. However I have chosen
<br>CLOS associated with a BlackBoard architecture  + BOOCH
<br>methods to develop a knowledge based system. Another level
<br>here  is the domain dependent  model entitled the Model of
<br>Primary, Secondary and Tertiary Waves in  green architectural
<br>and urban design generation.   What's the relationship here
<br>between metaprogramming and BlackBoard architecture I do not
<br>know. But indeed my PHD advisor, who is an architect with
<br>broad knowledge in computer science (geographic information
<br>systems and multimedia, he programmed in C) was not at all
<br>satisfied with the arrangement. Neither was I. But this was
<br>the best we could do in 1992. My co-advisors were from the
<br>field of artificial intelligence.
<p>(To be better understood I should state what hermeneutic
<br>computer science means, but I kindly ask you to refer
<br>to my paper The hermeneutic nature of an ecodesign model
<br>and Self in my home pages: <A HREF="http://www.lsi.usp.br/~lourenci">http://www.lsi.usp.br/~lourenci</A>).
<p>What's the basic problem with LISP? Peter Wegner states in
<br>Models and Paradigms of Interaction LNCS (Lecture Notes
<br>in Computer Science) 791 proceedings from ECOOP'93 that
<br>the functional behaviour of LISP is inadequate in situations
<br>that involve the interaction of persistence and concurrency
<br>due to its inability to grasp the  real time of interaction for
<br>persistent objects, and the problems in modeling concurrency
<br>are a consequence of this fundamental nuisance.
<br>Time in computing models means the internal time of execution
<br>of an algorithm while time in models of interaction means
<br>the external real time of the application that is being modelled.
<br>These are notions fundamentally different.
<br>And even with the introduction of the OO paradigm into LISP
<br>CLOS, the many levels introduced to implement the ecodesign
<br>model made everything very cumbersome to handle.
<p>Soon I discovered The Mjolner Beta environment . Here I learned
<br>about metaprogramming and Joergen LIndskov Knudsen
<br>accepted to advise me  in a sandwich PHD modality.
<br> 
<p>Unfortunately Beta was not that expressive for my needs and
<br>still it was not possible to implement a core to demonstrate
<br>the potential of my ecodesign model.
<br>Then I was introduced to Self in 1996.
<br>What Wegner argues and I agree is that  the idea of interaction
<br>is more powerful than algorithms, enabling us to distinguish
<br> multiple leves of expressiveness.
<br>I believe Self is essentially interactive. I am not arguing that
<br>Self is perfect but it seems prototype-based languages are
<br>more interactive and expressive than any other programming
<br>language that exists.
<p>To transfer expressiveness from the programming language
<br>to the architectural organization will make the act of
<br>programming for the uses far more complicated, unfriendly
<br>and unnatural.
<p>I bet my colleagues that are architects won't appreciate it.
<br> 
<p>Moreover all papers and theses I have been reading
<br>concerned with reflection associate it to a prototype-based
<br>language (Steyaert, Malenfant, Cointe, Jecel  etc).
<p>So I would like you to contribute to this discussion.And
<br>since it is the very core of my needs to implement
<br>my ecodesign model, who knows...suddenly we can
<br>get started a research group as soon as possible.
<p>Above all I do appreciate this trend of research.
<p>Best wishes
<p>Albertina
<br> 
<br> 
<pre>-- 
.----------------------------------------------------------.
| 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                                     |
.----------------------------------------------------------.</pre>
 </html>