Response by Shigeru Chiba

One of practical advantages of OI is to solve mapping dilemmas in terms of performance as the foil addresses. Although it is (probably, most) significant, I would like to claim another advantage of OI.

In programming languages, by using OI, the library programmers can write a module that the user can use more easily and more safely. When using a large program library, the users usually have to take care of some rules: call an initialize routine at first, call a superclass' method if the method is redefined at a subclass, etc. Some of those rules can be checked (at runtime) by the library itself, but the user must be responsible to others. Thus the library users must read a document about its usage and concern about it during the coding.

Those troubles come from the weakness of the language power. But this is a sort of mapping dilemma. The language designer cannot know what functions'll be needed to write a good program library on the language. OI can give a solution to this, however. If the language has some extensibility by OI, the library programmer may use it to check the user's code and also to automatically insert lines into the user's code not to violate the rules. For example, if CLOS's method combination is useful to write their library, the library designers can implement the method combination on their target langauge by OI.

I think this point is significant for robust and reusable program libraries.

Back to Alphabetical List of Responses

Back to Main OI Workshop Page

Back to OI Home Page


Shigeru Chiba, chiba@parc.xerox.com

(Last Revised October 1994)