This is the mail archive of the guile@cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: records



> but my understanding is that all of the existing record proposals can
> basically be implemented on top of GOOPS in one way or another

As I understand the issue guile has a record implementation called
"struct" and GOOPS is build on top of structs, no?


> Abelson and Sussman argue that object systems are misconceived to
> begin with.  (There's a long footnote in SICP about this; I can't
> remember where it is, exactly.)  Their argument is essentially that
> nobody has figured out a decent way to describe operations on more
> than one type.  Or something like that.  CLOS at least attempts to
> address this issue, by letting you specialize a generic function on the
> types of more than one of its arguments.  But Java, C++, etc. just
> totally punt the issue.

I think this is the old "genericity vs. inheritance" problem.
Bertrand Meyer showed that it is possible to emulate genericity on a
system that supports inheritance but it is not possible to emulate
inheritance on a system that only supports generic types/behaviour.

Scheme supports genericity and Java, C++ etc. support
inheritance.  Eiffel supports inheritance *and* (as a special
case) a generic type so that it is not necessary to emulate it.


Jost

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]