[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
General Questions
Hi.
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
--
----------------------------------------------------------------------------
George Kyriazis | Visual Technologies Program, Rensselaer Design
kyriazis@rdrc.rpi.edu | Research Center, CII 7015, RPI, Troy, NY 12180
----------------------------------------------------------------------------