Apple Objective-C APIs
Malte has an excellent example of why Apple should “wrap” their C APIs in Objective-C. (I have written about this before.) His example shows how complexity can be hidden in classes. With Objective-C you can give classes multiple interfaces using categories, so that there is a basic interface for simple things, and additional interfaces when the simple things aren’t enough.
This rhymes well with the “Selfish Class” paper by Foote and Yoder I wrote about some weeks ago, which state that reusable frameworks should “work out of the box” and exhibit a “gentle learning curve” by revealing complexity as it is needed.