[Prev][Next][Index][Thread]
Re: Interfaces
Kim Barrett wrote in message <200007031924.PAA16768@life.ai.mit.edu>...
[Quote from Moon]
> Dylan does not require programmers to make a textual copy of portions
> of the definitions of items exported by a module, like a C header file
> or an Ada package declaration. In my opinion Dylan modules still have
> a well-defined interface; the difference is that we assume there will
> be the obvious development tools for printing out that interface,
> instead of requiring programmers to pretend to be tools and copy text
> from one file to another. (Except of course Dylan still requires
> programmers to copy the -names- of the exports from their definitions
> into the define module statement. We haven't thought of a good way to
> avoid that.)
If you want to declare an "interface" in Dylan right now, you copy the
names of functions into a module definition, and you copy the signature
from some set of methods into a 'define generic' form. So Dylan does,
in fact, require you to make "a textual copy of portions of the definitions
of items exported by a module" if you want to collate this into an
"interface".
And you get to copy a little bit into one place, and another bigger bit
into another place. So I find Moon's argument less than persuasive...
I have in the past proposed deprecating 'define generic' and augmenting
'define module' to take its place. I haven't thought about this for a year,
and I haven't written a real proposal, so don't bother to quiz me on it.
Follow-Ups:
References: