General Questions

kyriazis at kyriazis at
Sun Oct 11 05:19:03 UTC 1992


I am new to Self (I just got it a couple of days ago).  I think it is a
wonderful system! Reading the user's and programmer's manuals and browsing 
through the system I came up with several questions.  A word of warning,
though.  I come from C++, so my background may be influencing my view
of the Self world.

1. Is there any way to type-check arguments passed to a method?  Here are
   two very valid examples of why I want to do that: (a) I have a vector 
   class.  I want to override the '*' operation so that I do something
   different when I get a vector or a float as an argument.  In the first
   operation I am performing a dot product, and in the second one I am
   performing a vector-scalar multiplication. (b) I may want to limit a
   specific class of objects from being able to receive a message, even
   though they understand it.

2. Are there any prospects in the future for producing more alternatives
   to slot accesibility?  Maybe a want some slot to be visible to some
   objects, but not visible to others.

3. Say I have a C++ class library.  I am assuming that it is possible
   (through the C++ glue functionality) to provide a mirror of the class
   hierarchy is Self.  One reason may be that I want an interactive
   interface to all my classes; I am bored compiling to an executable
   each time I want to make a small change.  How does Self deal with
   passing one (encapusalated) C++ object as an argument to another
   (encapsulated) C++ object's method?  For example, 'a' and 'aTraits' 
   are the Self objects corresponding to class A, 'b' and 'bTraits' are 
   the Self objects corresponing to class B, and I have a method 
   like: A::foo( B& ).  Can I do something like: a foo: b, as an equivalent
   in the Self encapsulated objects?

4. Is there a way, once I have defined how my application is going to
   be, provide a snapshot of the world (together with compiled code) in
   such a way, so that once I run the snapshot a predetermined method is
   called at startup?  I may not want to have a command-line-interface
   to my application.

That's it for now..  I'd like to thank in advance whoever is going to
answer my questions.

George Kyriazis       | Visual Technologies Program, Rensselaer Design
kyriazis at |  Research Center, CII 7015, RPI, Troy, NY 12180

More information about the Self-interest mailing list