Lists Home |
Date Index |
Michael Kay wrote:
> You know the answer to your question. But it doesn't address my point. You
> claimed that defining the interface to accept Source was no better than
> defining it to accept Object. I pointed out that it was better, because
> defining it as Source would catch many type errors.
I think the Python folks have pretty well convinced me that this doesn't
help nearly as much as I used to think. I find it hard to imagine a case
where I'd pass the wrong object to a transform method, and it would
survive more than the first test run. These sorts of errors are caught
so quickly they really don't need special compiler support to help them.
Marker interfaces have their places. Serializable doesn't bother me, for
instance, because whether an object is serializable or not. An object
that implements it is probably serializable. An object that doesn't
isn't. Yes, I know there are exceptions to this; but that's basically
how it works. Declare an object Serializable and ObjectOutputStream will
try to serialize it. Declare that an object implements Source, and
there's little a transformer can do.
Elliotte Rusty Harold email@example.com
XML in a Nutshell 3rd Edition Just Published!