Guile Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Jim Blandy <email@example.com> writes:
> Mikael is better suited to answer your specific question than I am,
> but my understanding is that all of the existing record proposals can
> basically be implemented on top of GOOPS in one way or another, and
> thereby interoperate nicely.
Well, I suppose this means that I should say something.
If I've counted them correctly there currently seems to be four
record-like representations in(/with) Guile now:
2 procedural record interface
3 GOOPS objects
4 slib structs
Q: Which is most "canonical"?
1 As I said previously, the structs will be replaced, so they are
4 There is currently no plan to support slib structs
3 Even though there is the possibility that people finally realize
that a CLOS-style object system isn't The Right Way to go, there is
still enough people whose minds are CLOS-tuned to guarantee a long
life of GOOPS.
2 The procedural record interface will very probably also have a long
life because it is an essential part of SLIB and we have no reason
not to be compatible here. (When the new module system arrives we
will start a process of dividing Guile into modules. There will
then be some bindings which will be considered part of a core Guile
language, and other "lesser" bindings. There is no guarantee now
that the procedural record interface will be part of the *core*
language (which is supposed to spread to other implementations), but
you can be fairly certain that it will be supported also in the
So, while there is no really good "canonical" candidate yet, I suggest
that you use the procedural interface if you don't want to be
dependent on the, currently, separately distributed guile-oops
package, and use GOOPS otherwise. (GOOPS *is* stable. Do you think
Christian and I would write something unstable? Why would we want to
do anything like that? ;-)
Concerning the near future, my guess is that we'll end up in either of
1 All record-like interfaces (SRFI-9, procedural interface, GOOPS)
based on a new common low-level representation.
2 As in 1, but GOOPS using its own low-level representation.
Of course, *if* GOOPS will be integrated into the core, new
alternatives will arrise.
Guile Home |
Main Index |