Provide extensibility
Reduces user pressure for changes
Possibly at several levels
- in Python: 2 major extension levels (Python, C/C++/...)
Take care to define & document extension interfaces
- Linus Torvalds: “I don’t care about bugs in device drivers; they will get fixed. I care about getting the interface right.”