[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Comments



> in draft status until 2000/04/16

I assume this should be 2000/06/16



> This model makes possible that vectors be regular instances of the
> object system since the object system allows fields to be regular [...]
> or indexed.


Why is it necessary to hard-wire a collection type?  Isn't it better to
parameterize a vector class with another class and use this as the
field descriptor?  And what about other collection types than vectors?



> The proposed model is based on simple inheritance (for the same
> reasons Java took).

(I assume you mean "single interitance")

Java supports multiple interitance via delegation.  Is this
possible in meroon?  



> They use keywords ie symbols prefixed with a colon.

In Scheme a colon is a valid identifier.  And I find the :keyword
syntax a little bit strange.  Instead of:

   (instantiate Foo :bar 1 :hux 2 3 4)

I prefer:

   (instantiate Foo (bar 1) (hux 2 3 4))



> (set-Foo-hux! aFooInstance anySchemeValue aNaturalNumber) -> unspecified

The convention for getters and setters is: <type>-<operation>-<field>
Where <type> and/or <field> is optional.

Examples:

       set-cdr!
       set!
string-set!

So this should be:
(Foo-set-hux! aFooInstance aNaturalNumber anySchemeValue)


> (define-class class-name ...)
                
I assume all classes "live" in a meta namespace which is probably the
same namespace that holds all modules.  But:


> (object->class object)

Does it create a new class?  If so, in which namespace?



> This document proposes an open model in the dynamic spirit of Scheme
> (and Lisp).

I do not understand why you say that there is a relationship between the
"dynamic" language Scheme and an "open model".  I think such a
relationship doesn't exist.  There is at least one "closed model" OO
implementation which integrates nicely into scheme.

And if you take the module system into account, you'll end up with
a "closed model" anyway.  The module system must reject external
overrides for example.


Jost