<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
cramakrishnan@acm.org wrote:
<br> 
<br> 
<blockquote TYPE=CITE>Albertina Lourenci writes:
<br>>
<br>> 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>Hmm... I've been thinking about metaprogramming lately, and though I
<br>think meta facilities in a language increase the expressiveness of
the
<br>language, I'm coming to the conclusion that having to resort to meta
<br>facilities is a symptom of lack of expressiveness.
<br> </blockquote>
I am in agree!!! The problem with me to withstand an in-depth
<br>discussion in computer science is that for a question of  mental
<br>health, I have made up my mind since 1988 (in contrast to my
<br>behaviour before when I became unbearably stressed  accomplishing
<br>very detailed written reports) to focus
<br>in-depth only aspects that are directly connected to the unfolding
<br>of my research. So I erase info that cannot be mapped directly
<br>to my research. Once the info was not registered, I did not
<br>formally concluded anything in written form, now I am having
<br>difficulties to fill the gap.
<br>Since I decided I cannot deal with Beta, although it was the time
<br>I learned most consistently about computer science, I did not
<br>make any report showing my evolution to Self for example.
<br>This is a pity!
<br>I want to focus on some aspect of metaprogramming I learned
<br>in Beta but I am making an association  with something
<br>I read  about virtual machine's capabilities in Self. Moreover
<br>I became aware that a user interface is also a virtual machine.
<br>So if someone could tell me if there is some relationship
<br>between metaprogramming and virtual machine before I try
<br>to explain my viewpoints I would be greatly indebted.
<br>Right now I have to go rowing and swimming to keep healthy
<br>and productive. Worse  at the beginning of February I have
<br>to close temporarily my studies in computer science and
<br>deal with the " discovery" of the free plan in architecture.
<br>I feel people in computer science also do not care about
<br>making a real synthesis.  So it is difficult to sense the
<br>state of the art in computer science.
<p>Cheers
<br>Albertina
<blockquote TYPE=CITE> 
<br>For example, one common use of reflection is implemeting proxies in
<br>Smalltalk/ObjectiveC.  You subclass nil, implement doesNotUnderstand:
<br>to invoke the method on the wrapped object.  But the fact that
you
<br>have to do this is a symptom of the fact that Smalltalk doesn't have
<br>the notion of delegation, the way Self does.
<p>Another example is something I just did yesterday in Java.  I received
<br>a HashMap from an HTTP request that contains the changes a user made
<br>to an object.  I need to stuff these changes into a persistent
object
<br>so i can get the changes into the Database.  In Java, I had to
get a
<br>PropertyDescriptor and then retrieve the setter method and invoke it,
<br>etc.
<p>In JavaScript, however, objects are just the same as arrays with the
<br>slot names being the index.  So I could have just done:
<p>  myObject[key] = value;
<p>No need for reflection.
<p>Another thing i find interesting is that there are some types of meta
<br>programming which are common (like the two above examples), but others
<br>which are quite rare (like people creating their own meta-classes). 
I
<br>think this is significant, though I'm not sure what that means. :)
<p>I also remember that in the Self Programmer's Manual there is a
<br>section that discourages reflective programming.
<p>What do you guys think of this?
<p>- sekhar
<p>--
<br>C. Ramakrishnan        cramakrishnan@acm.org</blockquote>

<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>