How to design interfaces to deal gracefully with change. Coping with Change:
One manifestation of this problem is popularly known as DLL hell. Installing or uninstalling one program may suddenly cause a seemingly unrelated program to fail. Inevitably, the root cause is a change to an interface. The traditional solution generally involve some sort of change management. [...] However, to effectively scale in remote procedure call environments, something less brittle and more loosely coupled is called for. [...] Two things required to make a protocol which can withstand the test of time: namespaces and named parameter associations.
This gives me interesting ideas for general purpose software interfaces, plus makes renews my interest in programming languages which require named parameters to function calls.