One major vehicle for reuse is the use of libraries of code. Reusability is the prime route to software reliability. In this
work, we will use the term software component in its widest sense, including all kinds of self-contained libraries of code,
including collection libraries, APIs (bindings), application frameworks etc. Abstraction boundaries are essential both for
reuse and for reliability. We study language features that help overcome limitations imposed by abstraction boundaries (e.g.,
incomplete interfaces) without completely breaking abstraction. Language features discussed: type sytem features, object orientation,
genericity and reflection.
The work presented is work in progress, preliminary results and observations will be shown and discussed.