Proposal for telling an implementation what adjacency info an app/service needs
Tim Tautges
tautges at mcs.anl.gov
Wed Nov 11 09:23:51 CST 2009
There are cases where there will be variations in capabilities between implementations, without there being enough
commonality to justify binding in the API. The easiest example is load and save options. In that case, an application
must either ifdef directly to the implementation's syntax, or use a string option and test the return value of the
function. Either way the application will need to handle the case where the capability isn't available. With options,
the code is cleaner and there's a middle ground of possibly ignoring the option.
And, remember, I don't advocate doing this widely, just in a few cases where specialized behavior has far-reaching
consequences. I have several examples that have been encountered already, one of them resulting in bad press for ITAPS
(the sparse vs. dense tags thing).
- tim
Carl Ollivier-Gooch wrote:
> Tim Tautges wrote:
>> Questions:
>>
>> 1) What's the mechanism for registering decisions on these proposals?
>> I think we have several which have had tacit approval from everyone
>> but which haven't been registered yet.
>>
>> 2) How is the example below different than the case I've tried to make
>> for string options? In each case, the implementation may or may not
>> respond to the request from the service/application. It's just the
>> syntax or mechanism for specifying that request that's different, but
>> IIRC that wasn't a factor in the major objection to string options.
>
> Actually the major difference is that a string option can be -anything-,
> whereas in this case the argument passes specific, tightly defined
> information.
>
> That's both the strength and the weakness of a string option. You see
> it mostly the strength side of that, because it opens a door to any
> non-general behavior that an implementation may choose to add. I see
> mostly the weakness side of it, because it opens a door to any
> non-general behavior that an implementation may choose to add. (No,
> that wasn't a typo.) The larger the range of possible behaviors ---
> some of which may be required for a service or app to function --- the
> harder interoperability becomes.
>
> I think there's a convincing efficiency argument in this case. I'm sure
> that true in others, as well. I'd just prefer to see specific syntax be
> the preferred mechanism rather than a catch-all string argument.
>
> Carl
>
--
================================================================
"You will keep in perfect peace him whose mind is
steadfast, because he trusts in you." Isaiah 26:3
Tim Tautges Argonne National Laboratory
(tautges at mcs.anl.gov) (telecommuting from UW-Madison)
phone: (608) 263-8485 1500 Engineering Dr.
fax: (608) 263-4499 Madison, WI 53706
More information about the tstt-interface
mailing list